Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich erstell gerade ein Programm mit einer Swing Oberfläche:
Code:
import javax.swing.JFrame;
import java.awt.FlowLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import java.awt.Toolkit;
public class EinProgramm extends JFrame {
private JButton jButton9 = null;
/**
* This is the default constructor
*/
public EinProgramm() {
super();
initialize();
checkActions();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 350);
this.setResizable(false);
this.setContentPane(getJContentPane());
this.setLocationRelativeTo(null);
}
public void checkActions()
{
// Erzeugt einen ActionListener auf jButton9
jButton9.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
// hier fehlt der Zugriff auf das Objekt
}
});
}
/**
* This method initializes jButton9
*
* @return javax.swing.JButton
*/
private JButton getJButton9() {
if (jButton9 == null) {
jButton9 = new JButton();
jButton9.setPreferredSize(new java.awt.Dimension(140,30));
jButton9.setBorderPainted(false);
}
return jButton9;
}
// Zeigt die Swing Maske an
public static void main (String[] args)
{
// Hier wird das Objekt erzeugt auf das zugegriffen werden soll
EinProgramm start = new EinProgramm();
start.setVisible(true);
}
}
Ich hab nur mal den wichtigen Code übernommen. Beim drücken den jButton9 soll die grafische Oberfläche wieder neu angezeigt werden.
Das wollt ich machen indem ich start.setVisible(false) setze und ein neues Objekt erzeuge.
Aber wie kann ich das am besten machen? Wenn ich das Objekt global erzeuge bekomm ich die Fehlermeldung "java.lang.StackOverflowError"
Es dürfte reichen wenn das Fenster neu gezeichnet wird. Gibts da nicht sowas wie repaint()?
Wär aber nett wenn du mir beide Wege zeigen könntest.
Also das das Fenster neu gezeichnet wird und das ein komplett neues kommt.
public void checkActions()
{
// Erzeugt einen ActionListener auf jButton9
jButton9.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
// hier fehlt der Zugriff auf das Objekt
}
});
}
auf das in der main Methode erzeugte Objekt "start" zu?