Re: Newbie: Update of win
To: comp.lang.java.gui
jfrm.pack(); did not help, perhpas I did something wrong... But JList
definately looks like the thing for me.
Anyway, jfrm.validate() did the trick for this test-case.
Thanks for your help! :-)
On Apr 3, 6:17 pm, Knute Johnson <nos...@rabbitbrush.frazmtn.com>
wrote:
frod...@gmail.com wrote:
Hi!
I am new to Java and Swing. I have tried to search the net (including
comp.lang.java.gui FAQ), but I cannot figure out what is wrong with
the following test of swing. The window only updates when I am
changing the size of the window. How do I get the program to update
the window all by itself?
The program genereates a random number of lines, and is adding a
random number of lines when pushing a button.
Thanks in advance for any help!
public class Test implements ActionListener {
Box box;
int lines;
Random generator = new Random();
Test() {
JFrame jfrm = new JFrame("Random Lines Test");
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
box = Box.createVerticalBox();
int random = generator.nextInt(9)+1;
for (int i = 1; i <= random; i++) {
box.add(new JLabel("Line number " + i));
}
lines = random;
JButton jbRandom = new JButton("Add a random (1-9) num=
ber of
lines");
jbRandom.addActionListener(this);
jfrm.add(box);
jfrm.add(jbRandom, BorderLayout.SOUTH);
jfrm.pack();
jfrm.setExtendedState(Frame.MAXIMIZED_BOTH);
jfrm.setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
int random = generator.nextInt(9)+1;
for (int i = lines; i < lines+random; i++) {
box.add(new JLabel("Line number " + i));
}
lines+=random;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Test();
}
});
}
}
When you add or remove components from an already visible Frame you must
call validate() on the Frame to cause the LayoutManager to re-layout the
components. Then they will be visible.
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class Test implements ActionListener {
JFrame jfrm;
Box box;
int lines;
Random generator = new Random();
Test() {
jfrm = new JFrame("Random Lines Test");
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
box = Box.createVerticalBox();
int random = generator.nextInt(9)+1;
for (int i = 1; i <= random; i++) {
box.add(new JLabel("Line number " + i));
}
lines = random;
JButton jbRandom = new JButton("Add a random (1-9) nu=
mber of
lines");
jbRandom.addActionListener(this);
jfrm.add(box);
jfrm.add(jbRandom, BorderLayout.SOUTH);
jfrm.pack();
jfrm.setExtendedState(Frame.MAXIMIZED_BOTH);
jfrm.setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
int random = generator.nextInt(9)+1;
for (int i = lines; i < lines+random; i++) {
box.add(new JLabel("Line number " + i));
}
lines+=random;
jfrm.validate();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Test();
}
});
}
}
--
Knute Johnson
email s/nospam/linux/
--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
------->>>>>>http://www.NewsDem- Hide quoted text -
- Show quoted text -
---
* Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24