2017-05-30 1 views
0

Bitte ich brauche Ihre Hilfe, ich versuche zu tun, dass ich will 3-4 Tage jetzt und ich kann nicht. Ich habe 2 Klassen MainForm und Class2. Ich habe ein JLabell innerhalb einer Methode in Class1 und ich möchte es ändern, indem Sie eine Taste aus der Class2 drücken.Ändern Sie ein JLabel in eine void-Methode

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

und die Klasse 2

Class2 

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

        } 

Ich habe versucht, viel und durchweg nicht funktioniert, was ist der Code, den ich in dieser Schaltfläche schreiben müssen, die selectedItem vom TimeBox (comboBox) zu bekommen und es ausdrückte zu diesem Etikett?

Antwort

0

Zunächst einmal müssen Sie Referenzen beider JComboBox & JLable Objekte in der Klasse 2.
einfache Weise zu tun, ist jeweils private Mitglieder in MainForm anstelle von lokalen Mitgliedern initialize Methode erklären & sie in an den Konstruktor oder verwenden Sie den Setter-Methode-Ansatz.

Angenommen, die Referenznamen lauten jComboBox & jLable.

Jetzt können Sie folgende Syntax verwenden, um sie von actionPerformed Verfahren der anonymen Klasse zu verweisen mit dieser Syntax Class2.this.jComboBox & Class2.this.jLable (JComboBox & jLable ist Objektreferenz).