Hey,
ich habe vor ein Java Programm mit einer komplexeren GUI zu erstellen. Deshalb habe ich mir den WindowBuilder runtergeladen und damit eine GUI gebaut.
Bloß bin ich mir nun unsicher ob mein weiteres Vorgehen, was auf dem vom WindowBuilder generierten Code basiert, so richtig ist. (Ich hätte es per Hand nämlich anders geschrieben, aber das Ganze wieder umzubasteln widerstrebt dem Nutzen eines GUI Editors dann doch. )
Dazu hier direkt ein ganz kleines Beispielprogramm: 1 JLabel, 1 JButton.
Der JButton bekommt einen ActionListener und damit soll der Text vom JLabel geändert werden.
Das Ganze habe ich (bzw. der WindowBuilder) wie im folgenden Code zu sehen erstellt. Kursiv ist was ich hinzufügte und fett ist was Eclipse anschließend verlangte, damit es auch funktioniert.
Und genau das ist meine eigentliche Frage: Ist es richtig/sinnvoll, dass das JLabel final ist bzw. sein muss? Oder sollte man das alles irgendwie anders gestalten?
Das Programm funktioniert so ersteinmal. Aber können durch das final nicht später Probleme auftreten? Oder ist das so normal?
Danke
semmelkuh
ich habe vor ein Java Programm mit einer komplexeren GUI zu erstellen. Deshalb habe ich mir den WindowBuilder runtergeladen und damit eine GUI gebaut.
Bloß bin ich mir nun unsicher ob mein weiteres Vorgehen, was auf dem vom WindowBuilder generierten Code basiert, so richtig ist. (Ich hätte es per Hand nämlich anders geschrieben, aber das Ganze wieder umzubasteln widerstrebt dem Nutzen eines GUI Editors dann doch. )
Dazu hier direkt ein ganz kleines Beispielprogramm: 1 JLabel, 1 JButton.
Der JButton bekommt einen ActionListener und damit soll der Text vom JLabel geändert werden.
Das Ganze habe ich (bzw. der WindowBuilder) wie im folgenden Code zu sehen erstellt. Kursiv ist was ich hinzufügte und fett ist was Eclipse anschließend verlangte, damit es auch funktioniert.
Und genau das ist meine eigentliche Frage: Ist es richtig/sinnvoll, dass das JLabel final ist bzw. sein muss? Oder sollte man das alles irgendwie anders gestalten?
Code:
package gui;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class GUI extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GUI frame = new GUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public GUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
[B]final[/B] JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setBounds(97, 103, 70, 14);
contentPane.add(lblNewLabel);
JButton btnNewButton = new JButton("New button");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
[I]lblNewLabel.setText("Neuer Text");[/I]
}
});
btnNewButton.setBounds(92, 128, 89, 23);
contentPane.add(btnNewButton);
}
}
Das Programm funktioniert so ersteinmal. Aber können durch das final nicht später Probleme auftreten? Oder ist das so normal?
Danke
semmelkuh