Hallo Forum,
auch wenn ich wahrscheinlich nicht ganz sauber programmiert habe, müsste aus meiner Sicht einiges dennoch klappen. Ich habe eine Funktion mit der ich eine Oberfläche erzeuge. Diese besitzt zwei Buttons.
Bei einem Button soll ein Icon gesetzt werden, solange eine Funktion läuft.
Doch leider wird kein Button gesetzt.
Hier die Funktion:
Doch dort wo das Icon wirklich gesetzt werden soll, gelingt es mir einfach nicht, obwohl alle anderen Buttonmanipulationen funktionieren:
auch wenn ich wahrscheinlich nicht ganz sauber programmiert habe, müsste aus meiner Sicht einiges dennoch klappen. Ich habe eine Funktion mit der ich eine Oberfläche erzeuge. Diese besitzt zwei Buttons.
Bei einem Button soll ein Icon gesetzt werden, solange eine Funktion läuft.
Doch leider wird kein Button gesetzt.
Hier die Funktion:
Java:
//Buttons zum Starten, Abbrechen und Pausieren der Simulation
btnStart.setBounds(10,365,180,75);
btnStart.addActionListener(new ButtonStart());
JButton btnAbbruch = new JButton();
btnAbbruch.setText("Abbruch");
btnAbbruch.setBounds(10,455,180,75);
btnAbbruch.addActionListener(new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
System.out.println(sysInfo.getImagepfad()+"loadinfo.gif");
btnStart.setIcon(new ImageIcon(sysInfo.getImagepfad()+"loadinfo.gif"));//FUnktioniert super!!!!!!!!!!!
btnStart.setText("Start");
btnStart.setEnabled(true);
}
});
Doch dort wo das Icon wirklich gesetzt werden soll, gelingt es mir einfach nicht, obwohl alle anderen Buttonmanipulationen funktionieren:
Java:
class ButtonStart implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
new Thread (new Runnable()
{
@Override
public void run()
{
btnStart.setText("");
//progressBar.setValue(progressBar.getMinimum());
System.out.println(sysInfo.getImagepfad()+"loadinfo.gif");
btnStart.setIcon(new ImageIcon(sysInfo.getImagepfad()+"loadinfo.gif"));//Hier funktioniert nichts, es wird kein Image angezeigt
textArea.append("gestartet\n");
btnStart.setEnabled(false);
new Start().start(textArea);
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
textArea.append("beendet\n");
btnStart.setIcon(null);
btnStart.setText("Start");
btnStart.setEnabled(true);
}
});
}
}).start();
}
}
Zuletzt bearbeitet von einem Moderator: