2010-11-19 2 views
0

Je sais comment faire des écouteurs d'action pour des clics de bouton dans/sur le swing, mais j'ai cette classe qui fait des choses mais je le veux une fonction/événement que quand clique sur un bouton, il exécute une méthode similaire à la paintComponent ci-dessous ... (trace une ligne).drawLine sur l'événement (clic de bouton) 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); 
    } 

} 

Comment puis-je appeler cette paintComponent (ou similaire qui dessine une ligne) d'un écouteur d'action?

Voici mon ActionListener: (Son sur GUI.java alors que le code ci-dessus est en CustomPanel.java)

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

Merci beaucoup,

Répondre

0

Votre question n'a pas de sens pour moi dans votre dernière publication et elle n'a toujours pas de sens pour moi dans cet article.

Vous n'avez toujours pas posté de SSCCE qui tente de démontrer ce que vous voulez faire.

Si vous avez un "panneau de connexion", cela se fait généralement en créant un JDialog modal.

Si vous essayez de dessiner une diagonale sur la partie supérieure de tous les composants du cadre, vous devez utiliser un volet en verre ou un volet en couches.

Lire la section du tutoriel Swing sur How to Use Root Panes pour des exemples et des informations plus détaillées.

0

Vous devez l'ajouter à l'interface. Quelque chose comme ceci:

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

Mais si vous voulez seulement tracer une ligne sur le conteneur actuel qui est une autre chose ...

Questions connexes