У меня проблема с моей программой. Прямоугольник исчезает в определенной области кадра, и я понятия не имею, почему. Недавно я написал аналогичную программу, и она работала нормально. Разница заключалась в том, что я рисовал круг, а не прямоугольник.
Не могли бы вы помочь мне найти проблему?
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
Проблема с исчезновением объекта в JFrame ⇐ JAVA
Программисты JAVA общаются здесь
1733424390
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
Подробнее здесь: [url]https://stackoverflow.com/questions/70805660/problem-with-disappearing-object-on-jframe[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия