use L&F can satisfy your need. One simple way is to extends DefaultMetalTheme, and set the size of InternelFrame's minimizeIcon, maxmizeIcon and closeIcon to 0.
/** * Why should I write these type of stupid code??? * */ import javax.swing.plaf.metal.*; import javax.swing.*; import java.awt.event.*;class NoIconTheme extends DefaultMetalTheme { public String getName() { return "WithoutIcon"; }
public void addCustomEntriesToTable(UIDefaults table) { super.addCustomEntriesToTable(table); final int size = 0; table.put("InternalFrame.closeIcon", MetalIconFactory.getInternalFrameCloseIcon(size)); table.put("InternalFrame.maximizeIcon", MetalIconFactory.getInternalFrameMaximizeIcon(size)); table.put("InternalFrame.minimizeIcon", MetalIconFactory.getInternalFrameAltMaximizeIcon(size)); }} public class NoIconFrame extends JFrame { public static void main( String[] args ) { JFrame.setDefaultLookAndFeelDecorated(true); try { javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme( new NoIconTheme()); UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); } catch ( Exception e ) {}
NoIconFrame frame = new NoIconFrame(); frame.setTitle("Alt+F4 to close"); frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); frame.setSize(300,400); frame.setVisible(true); } }
去掉最大化和最小化就用对话框吧
如果都去掉就把标题栏去掉就行了setBorder(null)
解决了分全奉上
w.setBounds(100,100,300,300);
w.show();
在JWindow里你可以象JFrame一样的add东西,
但是JWindow没有border,titlebar,menubar,
而且无法改变window的size,无法移动.
JFrame是JWindow OVERWRITE而来,所以
JWindow的所有method,instance都可以使用.
如果你不使用上面的功能,no problem,
如果需要的话,还是用JFrame的好.
One simple way is to extends DefaultMetalTheme, and set the size of InternelFrame's minimizeIcon, maxmizeIcon and closeIcon to 0.
* Why should I write these type of stupid code???
*
*/
import javax.swing.plaf.metal.*;
import javax.swing.*;
import java.awt.event.*;class NoIconTheme extends DefaultMetalTheme { public String getName() { return "WithoutIcon"; }
public void addCustomEntriesToTable(UIDefaults table) {
super.addCustomEntriesToTable(table);
final int size = 0;
table.put("InternalFrame.closeIcon", MetalIconFactory.getInternalFrameCloseIcon(size));
table.put("InternalFrame.maximizeIcon", MetalIconFactory.getInternalFrameMaximizeIcon(size));
table.put("InternalFrame.minimizeIcon", MetalIconFactory.getInternalFrameAltMaximizeIcon(size));
}}
public class NoIconFrame extends JFrame { public static void main( String[] args ) {
JFrame.setDefaultLookAndFeelDecorated(true); try {
javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme( new NoIconTheme());
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
}
catch ( Exception e ) {}
NoIconFrame frame = new NoIconFrame();
frame.setTitle("Alt+F4 to close");
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
frame.setSize(300,400);
frame.setVisible(true);
}
}
请教各位了~~~~~~~~~~~~~
费解!!!
frame.setBorder(null);
frame.setUndecorated(true);OK了
frame.setUndecorated(true);这个太霸道,把整个标题都搞掉了。呵呵,太猛了。
我要留下标题栏,在这个前提下能够实现如题的条件吗?
:P
setUndecorated(true);方法来解决
感谢各位~~~~
再问一问L&F什么意思:))
星期1结贴,给答题的人分数~~~
目前我只懂这么多。
: )
jframe只能用禁最小化