Я знаю, как делать слушатели действий для щелчков кнопок в / при качании, но у меня есть этот класс, который делает некоторые вещи, но я хочу, чтобы это была функция / событие, которое при нажатии кнопки запускает метод, похожий на PaintComponent ниже ... (рисует линию)
class CustomPanel extends JPanel {
private int destx = 100;
private int desty = 100;
private int startx = 0;
private int starty = 0;
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(startx, starty, destx, desty);
}
}
Как мне вызвать этот компонент рисования (или аналогичный, который рисует линию) из слушателя действия?
Вот мой слушатель действий: (Его на GUI.java, а код выше находится на CustomPanel.java)
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == loginButton)
{
//Does other stuff but removed for simplifying
CustomPanel cp = new CustomPanel();
}
}
Большое спасибо,
3 ответа
Ваш вопрос не имел смысла для меня в вашем последнем сообщении, и он все еще не имеет смысла для меня в этом сообщении.
Вы все еще не опубликовали SSCCE, в котором делается попытка продемонстрировать, что вы хотите делать.
Если у вас есть «панель входа в систему», обычно это делается путем создания модального JDialog.
Если вы пытаетесь нарисовать диагональ поверх всех компонентов в кадре, вам нужно будет использовать стеклянную панель или многослойную панель.
Прочтите раздел руководства по Swing о Как использовать корневые панели для примеров и более подробной информации.
Вам нужно добавить его в графический интерфейс. Что-то вроде этого:
SwingUtilities.invokeLater(new Runnable() {
public void run() {
parentPanel.add(new CustomPanel());
parentPanel.revalidate();
parentPanel.repaint();
}
});
Но если вы хотите нарисовать линию только на текущем контейнере, это другое дело ...
Простое добавление вашего CustomPanel
к любому другому JComponent
и обновление пользовательского интерфейса должно помочь. Swing позаботится обо всех картинах за вас.
Вот очень полезное руководство по рисованию качелями;
http://java.sun.com/products/jfc/tsc/ article / painting / # paint_process
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.