Проблема с исчезновением объекта в JFrameJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема с исчезновением объекта в JFrame

Сообщение Anonymous »

У меня проблема с моей программой. Прямоугольник исчезает в определенной области кадра, и я понятия не имею, почему. Недавно я написал аналогичную программу, и она работала нормально. Разница заключалась в том, что я рисовал круг, а не прямоугольник.
Не могли бы вы помочь мне найти проблему?
public class Runner {

public static void main(String[] args) {
AppFrame app = new AppFrame();
app.setVisible(true);
}
}


public class Drawing extends JPanel{

public int getX() {
return x;
}

public void setX(int x) {
this.x = x;
}

public int getY() {
return y;
}

public void setY(int y) {
this.y = y;
}

private int x;
private int y;

public void paint(Graphics g) {
super.paint(g);

Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.RED);
g2d.fill(new Rectangle2D.Double(x, y, 40, 40));
}

public void repaintObject() {
repaint();
}}


public class AppFrame extends JFrame implements ActionListener {

private int height =600;
private int width = 600;

private JButton upButton;
private JButton downButton;
private JButton rightButton;
private JButton leftButton;

private JPanel drawingPanel;
private JPanel buttonsPanel;

private Drawing object;
private int x;
private int y;

public AppFrame() {

this.setLayout(new GridLayout(2,1));

drawingPanel= new JPanel();
buttonsPanel= new JPanel();

drawingPanel.setLayout(new GridLayout(1,1));
buttonsPanel.setLayout(new BorderLayout());

upButton = new JButton("Up");
downButton = new JButton("Down");
rightButton = new JButton("Right");
leftButton = new JButton("Left");

buttonsPanel.add(upButton, BorderLayout.CENTER);
buttonsPanel.add(downButton, BorderLayout.PAGE_END);
buttonsPanel.add(rightButton, BorderLayout.LINE_END);
buttonsPanel.add(leftButton, BorderLayout.LINE_START);

x=100;
y=100;

object = new Drawing();
object.setX(x);
object.setY(y);
drawingPanel.add(object);

this.add(drawingPanel);
this.add(buttonsPanel);

upButton.addActionListener(this);
downButton.addActionListener(this);
rightButton.addActionListener(this);
leftButton.addActionListener(this);

this.setSize(height, width);

setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();

System.out.println(x+" "+ y);
if(source == upButton) {

if(y>=50) {
y = y - 50;
object.setY(y);
object.repaintObject();
}

} else if(source == downButton) {
if(y

Подробнее здесь: https://stackoverflow.com/questions/708 ... -on-jframe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»