2010-11-19 17 views
0

Ich weiß, wie man Aktion Listener für Tasten klicken in/auf Schwung, aber ich habe diese Klasse, die einige Sachen tut, aber ich will es eine Funktion/Ereignis, wenn eine Schaltfläche geklickt wird es ein Verfahren ähnlich zu dem paintcomponent läuft unter ... (zieht eine Linie).drawLine auf Ereignis (Knopf klicken) Jpanel/Jbutton/JTabbedPane

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); 
    } 

} 

Wie würde ich dieses paintcomponent nennen (oder ein ähnliches, die eine Linie zieht) von einer Aktion Hörern?

Hier ist meine Action: (Es liegt auf GUI.java, während der Code oben auf CustomPanel.java)

public void actionPerformed(ActionEvent e) 
    { 
     if (e.getSource() == loginButton) 
     { 
      //Does other stuff but removed for simplifying 
      CustomPanel cp = new CustomPanel(); 
     } 
    } 

Thanks a lot,

Antwort

0

Ihre Frage ergab keinen Sinn für mich in Ihrem letzten Posting und es macht immer noch keinen Sinn für mich in diesem Posting.

Sie haben noch keine SSCCE geschrieben, die versucht zu demonstrieren, was Sie tun möchten.

Wenn Sie einen "Anmeldebereich" haben, wird dies in der Regel durch Erstellen eines modalen JDialogs erledigt.

Wenn Sie versuchen, eine Diagonale über die Oberseite aller Komponenten im Rahmen zu zeichnen, müssen Sie einen Glasbereich oder einen Ebenenbereich verwenden.

Lesen Sie den Abschnitt aus dem Swing-Tutorial auf How to Use Root Panes für Beispiele und detailliertere Informationen.

0

Sie müssen es in den gui. Etwas wie folgt aus:

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

Aber wenn Sie nur eine Linie auf dem aktuellen Container ziehen, dass eine andere Sache ...