2016-04-27 9 views
1

Ich habe mehrere actionListeners in meinem Code für, wenn ich einen Knopf drücke, ändert es Tabs zwischen denen, die ich habe. Ich möchte jedoch eine allgemeine Aktion erstellen, die je nachdem, welche Taste gedrückt wurde (durch ein int), zu einer anderen Registerkarte geändert wurde. Dies ist der aktuelle actionListener, den ich habe.Wie erstellt man eine allgemeine Aktion, die Tabs in der GUI ändert?

JButton btnSaveAddESS = new JButton("Save"); 
    btnSaveAddESS.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 

      tabbedBackground.setSelectedIndex(0); 
      tabbedBackground.setEnabledAt(1, false);  
     } 
    }); 

Damit würde Ich mag eine allgemeine Aktion erstellen, aber während die Aktion als eine andere Klasse zu schaffen, bin ich nicht in der Lage, die TabbedPane (tabbedBackground) Komponente zuzugreifen.

Wie kann ich dies implementieren, um actionListeners zu vermeiden? Jetzt

Danke, Nhekas

Antwort

0
changeTab(int i){ 
tabbedBackground.setSelectedIndex(i); 
tabbedBackground.setEnabledAt(i, false); 
} 

public void actionPerformed(ActionEvent e) { 
int i = Integer.parseInt(Jbutton.getText()); 
changeTab(int i); 
     } 

, was Sie brauchen eigentlich eine Methode ist, die die Operation ein int dem Verfahren changetab Handles und die Methode wird die selectedTab

+0

danke für die Antwort ändern, Ich nenne diese Funktion nur innerhalb verschiedener Aktionshörer, oder? Ist es jedoch möglich, die actionListners vollständig zu vermeiden? – Nhekas

+0

ist eine Methode, die Sie von überall aufrufen können. Worüber Sie sich Sorgen machen müssen, ist das Übergeben eines korrekten int-Werts, andernfalls können Fehler auftreten. – Priyamal