2017-05-30 1 views
0

S'il vous plaît j'ai besoin de votre aide, je suis en train d'essayer de faire ce que je veux 3-4 jours maintenant et je ne peux pas. J'ai 2 Classes MainForm et Class2. J'ai un JLablel à l'intérieur d'une méthode à Class1 et je veux le modifier en appuyant sur un bouton de la Classe2.Modifier un JLabel à l'intérieur d'une méthode vide

public class MainForm { 


    private JFrame frame; 

    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        MainForm window = new MainForm(); 
        window.frame.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    /** 
    * Create the application. 
    */ 
    public MainForm() { 
     initialize(); 
    } 

    /** 
    * Initialize the contents of the frame. 
    */ 
    private void initialize() { 
     frame = new JFrame(); 
     frame.setBounds(400, 200, 488, 322); 
     frame.setTitle("ShutDown"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().setLayout(null); 
     frame.setResizable(false); 


/** 
     * Time BOX 
     */ 
     JComboBox<String> timeBox = new JComboBox<String>(); 
     timeBox.setBounds(73, 142, 90, 20); 
     timeBox.addItem("Days"); 
     timeBox.addItem("Hours"); 
     timeBox.addItem("Minutes"); 
     timeBox.addItem("Seconds"); 
     timeBox.addItem("Right now"); 
     timeBox.setSelectedItem("Minutes"); 
     frame.getContentPane().add(timeBox); 


     String getTimeBox = timeBox.getSelectedItem().toString(); 



     /** 
     * The label info. 
     */ 
     JLabel labelInfo = new JLabel(""); 
     labelInfo.setBounds(73, 209, 310, 14); 
     frame.getContentPane().add(labelInfo); 
     labelInfo.setText(getTimeBox); 
} 

et la classe 2

Class2 

JButton okButton = new JButton("OK"); 
     okButton.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 

        } 

J'ai essayé beaucoup et AllWays travail ne marche pas, ce qui est le code que je dois écrire en ce bouton pour obtenir le selectedItem du Timebox (comboBox) et le mettre à cette étiquette?

Répondre

0

Tout d'abord vous avez besoin des références des deux JComboBox & JLable objets en classe 2.
Une façon simple de le faire est de déclarer députés respectifs MainForm au lieu des membres locaux de initialize méthode & les passer au constructeur ou utilisez l'approche de la méthode Setter. Considérons que les noms de référence sont respectivement jComboBox & jLable.

Vous pouvez maintenant utiliser la syntaxe suivante pour les référencer à partir actionPerformed méthode de la classe anonyme en utilisant cette syntaxe Class2.this.jComboBox & Class2.this.jLable (JComboBox & jLable est de référence d'objet).