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 habe ein kleines Programm geschrieben, bei dem man in einem Fenster 2 buttons hat. Wenn man diese beiden buttons nacheinander drückt dann soll eingentlich in dem Fenster ein jlabel mit einem text erscheinen, jedch erscheint es erst wenn ich das fenster minimiere und dann wieder groß mache.
Kann mir jemande sagen was ich da machen muss?
ne also das hilft auch nich, ich muss es nach wie vor noch erst minimieren und dann wieder groß machen (weiß auch nich wie man das richtig nennt) um das label zu sehen.
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class button {
public static void main(String[] args)
{
final JFrame frame = new JFrame();
final Icon i1 = new ImageIcon("C:/Dokumente und Einstellungen/right.gif");
final Icon i2 = new ImageIcon("C:/Dokumente und Einstellungen/wrong.gif");
final JLabel l1= new JLabel("MyLabel");
frame.setLayout(null);
frame.setPreferredSize(new Dimension(350,250));
frame.setLocation(465, 387);
frame.setTitle("TestFenster");
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
final JButton b1 = new JButton(i2);
final JButton b2 = new JButton(i2);
b2.setBounds(51, 0, 40, 40);
b2.setToolTipText("b2");
b1.setBounds(0, 0, 40, 40);
b1.setToolTipText("b1");
b1.addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(i1==b1.getIcon()){b1.setIcon(i2);}
else{b1.setIcon(i1);}
}//performed
}
);//listener
b2.addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(i1==b2.getIcon()){b2.setIcon(i2);}
else{
b2.setIcon(i1);
if(i1==b2.getIcon()&&i1==b1.getIcon()){frame.add(l1);frame.validate();
System.out.println("label should be added");}
}
}//performed
}
);//listener
frame.add( b2 );
frame.add( b1 );
frame.pack();
frame.setVisible( true );
}//main
}//class
So sieht der ganze Kladeradatsch jetz aus.
Gleich ma noch ne kleine Frage: Wenn ich die Hintergrundfarbe meines Frames auf schwarz setze, dann ist das label nur ganz kurz nach dem starten des progs schwarz und danach wieder so standardmäßig-hellblau. Woran liegt das?
Ich hab das jetz mal mit der DUMMI-Variante versucht indem ich einfach geschrieben hab: l1.setLocation(100,100).
Aber das Funktioniert nicht und ich nehme mal an das liegt an dem LayoutManager. Gibt es nicht einen LayoutManager bei dem ich alle Elemente mit setLocation() so positionieren kann wie es mir passt?