Exakt vad är det du inte får att funka??
Det du måste göra är att validera din JFrame när du lägger till något.
Lägg till raden:
this.validate();
sist i actionPerfomed-metoden.
4 svar · 516 visningar · startad av golding
tjenare....
jag får inte javakoden att funka...
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class test extends JFrame implements ActionListener
{
JPanel p = new JPanel();
JButton b1 = new JButton("Klicka!");
JButton b2 = new JButton("Ny knapp");
public static void main(String[] arg)
{
test t = new test();
}
public test()
{
setLayout(new FlowLayout());
b1.addActionListener(this);
add(p);
p.add(b1);
setSize(300, 100);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
p.add(b2);
}
}
mvh... Sebastian
Exakt vad är det du inte får att funka??
Det du måste göra är att validera din JFrame när du lägger till något.
Lägg till raden:
this.validate();
sist i actionPerfomed-metoden.
Lime skrev:
Exakt vad är det du inte får att funka??
Det du måste göra är att validera din JFrame när du lägger till något.
Lägg till raden:
this.validate();sist i actionPerfomed-metoden.
Det funkade. tackar....
men varför måste man göra det?
golding skrev:
Det funkade. tackar....
men varför måste man göra det?
Därför att validate ser till att containern (JFrame) gör en genomgång av vilka komponenter den har i sig och uppdaterar gränssnittet därefter.
Tackar för det...