nintendoluk
Commander
- Registriert
- Mai 2014
- Beiträge
- 2.124
Hi zusammen,
ich habe mittels dem WindowDesigner (Eclipse Plugin) mir eine Form zusammengestellt. Diese habe ich jedoch abändern müssen, da die Anzahl der Labels von einer Datei abhängt, welche erst mittels Buttondruck ausgelesen wird.
Die Schleife mit der die Labels erstellt werden habe ich also in das ActionEvent eines Buttons reingepackt.
Jedoch wird diese beim Drücken des Buttons zwar ausgeführt, die GUI-Bausteine, die erstellt werden sollen, erscheinen aber nicht. Es wird auch kein Error o.ä. angezeigt.
Wenn ich die Labels außerhalb des ActionEvents anzeigen lasse, funktioniert alles Wunderbar.
Zur besseren Verständnis hier mein kompletter Quellcode (vielleicht ist der Fehler ja ganz woanders):
Bis auf die Konsolenausgaben ist es aktuell so, dass beim Buttonklick nichts passiert.
Ich hoffe einer von euch hat eine Lösungsidee. Außerdem würde ich mich auch über Tipps freuen, welches Layout besser geeignet wäre.
Danke & Gruß
Lukas
PS: Ich hab Leider keine Zeit mir ein komplettes Tutorial zur GUI-Programmierung anzusehen (Da ich wahrscheinlich nie wieder GUIs machen werde und es Sinnlos wäre mir das anzutrainieren), deshalb nutzt es mir gar nichts wenn Ihr mir Links zu Tutorials sendet ;-) Bitte beachtet das.
ich habe mittels dem WindowDesigner (Eclipse Plugin) mir eine Form zusammengestellt. Diese habe ich jedoch abändern müssen, da die Anzahl der Labels von einer Datei abhängt, welche erst mittels Buttondruck ausgelesen wird.
Die Schleife mit der die Labels erstellt werden habe ich also in das ActionEvent eines Buttons reingepackt.
Jedoch wird diese beim Drücken des Buttons zwar ausgeführt, die GUI-Bausteine, die erstellt werden sollen, erscheinen aber nicht. Es wird auch kein Error o.ä. angezeigt.
Wenn ich die Labels außerhalb des ActionEvents anzeigen lasse, funktioniert alles Wunderbar.
Zur besseren Verständnis hier mein kompletter Quellcode (vielleicht ist der Fehler ja ganz woanders):
Code:
package my.java.demo.prog1;
import java.awt.EventQueue;
public class GridMenu {
private JFrame frame;
private final JButton btnOk = new JButton("OK");
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GridMenu window = new GridMenu();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public GridMenu() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 458, 489);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new FormLayout(new ColumnSpec[] {
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("default:grow"),
FormFactory.RELATED_GAP_COLSPEC,
FormFactory.DEFAULT_COLSPEC,
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("max(25dlu;default)"),
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("max(27dlu;default):grow"),
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("max(26dlu;default)"),
FormFactory.RELATED_GAP_COLSPEC,
ColumnSpec.decode("max(81dlu;default)"),},
new RowSpec[] {
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
RowSpec.decode("max(199dlu;default)"),
FormFactory.RELATED_GAP_ROWSPEC,
FormFactory.DEFAULT_ROWSPEC,
FormFactory.RELATED_GAP_ROWSPEC,
RowSpec.decode("default:grow"),}));
/*******************************
* Ab Hier wird's Interessant *
*******************************/
JButton btnBrowseCsv = new JButton("Browse CSV...");
btnBrowseCsv.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Start Browse CSV...");
//Wird nicht gemacht:
JLabel lblC = new JLabel("C:\\ABC\\LMN\\XYZ.csv");
frame.getContentPane().add(lblC, "4, 1, 9, 1");
int iAnzahl = 5; //readCSV()
for(int i = 0; i < iAnzahl; i++)
{
System.out.println(i);
//Wird nicht gemacht:
JLabel lblN = new JLabel("Wir sind bei Nummer: "+ i);
frame.getContentPane().add(lblN, "4, "+(2+i)+", 9, 1");
}
}
});
frame.getContentPane().add(btnBrowseCsv, "2, 2");
}
}
Bis auf die Konsolenausgaben ist es aktuell so, dass beim Buttonklick nichts passiert.
Ich hoffe einer von euch hat eine Lösungsidee. Außerdem würde ich mich auch über Tipps freuen, welches Layout besser geeignet wäre.
Danke & Gruß
Lukas
PS: Ich hab Leider keine Zeit mir ein komplettes Tutorial zur GUI-Programmierung anzusehen (Da ich wahrscheinlich nie wieder GUIs machen werde und es Sinnlos wäre mir das anzutrainieren), deshalb nutzt es mir gar nichts wenn Ihr mir Links zu Tutorials sendet ;-) Bitte beachtet das.