Re: Confused about refere
To: comp.lang.java.gui
jamestechinfo@yahoo.com wrote:
Does anyone here know how to ask:
'is this panel inside a JFrame or an Applet'
That seems like a darn good question to me.
It seems like an X-Y problem to me.
To use your example of a ComboBox of prespecified window sizes, the
ComboBox shouldn't care about it's top-level container. Whatever class
instantiates the ComboBox should wire it up to do the resizing.
Here's an SSCCE (use Google if you don't know about SSCCE)
---------------------------8<---------------------------------
import java.awt.Dimension;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class WindowSizer {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new WindowSizer();
}
});
}
WindowSizer() {
final JFrame f = new JFrame("Window Sizer");
List<Dimension> sizes = new ArrayList<Dimension>();
sizes.add(new BoxableDimension(320,240));
sizes.add(new BoxableDimension(640,480));
sizes.add(new BoxableDimension(800,600));
JComboBox box = new JComboBox(sizes.toArray());
box.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
f.setSize((Dimension) e.getItem());
}
}});
JPanel p = new JPanel();
p.add(box);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(p);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
/*
* To make Dimension useful in a JComboBox we override toString()
* to return the sort of String we want to see in the JComboBox.
*/
class BoxableDimension extends Dimension {
BoxableDimension(int width, int height) {
super(width, height);
}
public String toString() {
return height + " x " + width;
}
}
}
---------------------------8<---------------------------------
---
* 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