Я довольно новичок в программировании, и я решил принять введение в класс java. У меня есть задание, где я должен создать стену, используя цикл for, который изменяет высоту стены на основе пользовательского ввода. Я думаю, что я получил большую часть кода, но я не могу подключить пользовательский ввод с циклом for. Любая помощь будет оценена по достоинству.Как нарисовать стену в методе краски на основе ввода пользователем
//Package List
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;
public class Wall extends JApplet implements ActionListener{
//Component declaration
JLabel directions;
JTextField input = new JTextField(10);
private JButton go;
//Variable declaration
int userinput;
//Method declaration
public void init()
{
getContentPane().setBackground(new Color (128, 128, 128));//Changes backround of JApplet to black
//Set JButton and JLabel
setLayout (new FlowLayout());
directions = new JLabel("Enter in any number between 1 and 20 and then press Enter on your keyboard.");
go = new JButton("Go!");
go.setBackground(Color.GREEN);
go.setFocusPainted(false);
go.addActionListener(this);
add (directions);
add (input);
add(go);
}
public void actionPerformed(ActionEvent ae)
{
String text = input.getText();
userinput = Integer.parseInt(text);
repaint();
}
//Method declaration
public void paint(Graphics g)
{
super.paint(g);
int startX = 50;
int startY = 650;
int width = 50;
int height = 20;
int spacing = 2;
int xOffset = 0;
for (int row = 0; row < userinput; row++) {
int y = startY + (row * (height + spacing));
if (row % 2 == 0) {
xOffset = width/2;
} else {
xOffset = 0;
}
for (int col = 0; col < 8; col++) {
int x = xOffset + (startX + (col * (width + spacing)));
System.out.println(x + "x" + y);
g.setColor(Color.RED);
g.fillRect(x, y, width, height);
}
}
}
}
Ваш код работает, но ваше смещение' y' должно быть большим – MadProgrammer