Я знаю, как делать слушатели действий для щелчков кнопок в / при качании, но у меня есть этот класс, который делает некоторые вещи, но я хочу, чтобы это была функция / событие, которое при нажатии кнопки запускает метод, похожий на 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();
        }
    }

Большое спасибо,

0
James Andrew 19 Ноя 2010 в 15:09

3 ответа

Лучший ответ

Ваш вопрос не имел смысла для меня в вашем последнем сообщении, и он все еще не имеет смысла для меня в этом сообщении.

Вы все еще не опубликовали SSCCE, в котором делается попытка продемонстрировать, что вы хотите делать.

Если у вас есть «панель входа в систему», обычно это делается путем создания модального JDialog.

Если вы пытаетесь нарисовать диагональ поверх всех компонентов в кадре, вам нужно будет использовать стеклянную панель или многослойную панель.

Прочтите раздел руководства по Swing о Как использовать корневые панели для примеров и более подробной информации.

0
camickr 19 Ноя 2010 в 19:49

Вам нужно добавить его в графический интерфейс. Что-то вроде этого:

 SwingUtilities.invokeLater(new Runnable() {
     public void run() {
         parentPanel.add(new CustomPanel());
         parentPanel.revalidate();
         parentPanel.repaint();
     }
 });

Но если вы хотите нарисовать линию только на текущем контейнере, это другое дело ...

0
dacwe 19 Ноя 2010 в 15:44

Простое добавление вашего CustomPanel к любому другому JComponent и обновление пользовательского интерфейса должно помочь. Swing позаботится обо всех картинах за вас.

Вот очень полезное руководство по рисованию качелями;
http://java.sun.com/products/jfc/tsc/ article / painting / # paint_process

0
Qwerky 19 Ноя 2010 в 17:46