import java.io.*; import java.awt.*; import javax.swing.*;public class T { public static void main(String args[]) { JFrame frm = new JFrame(); frm.setSize(400,300); JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File"); JMenuItem item; item = new JMenuItem("New"); menu.add(item); item = new JMenuItem("Open"); menu.add(item); item = new JMenuItem("Save"); menu.add(item); item = new JMenuItem("Close"); menu.add(item); item = new JMenuItem("Quit"); menu.add(item); menuBar.add(menu); frm.setJMenuBar(menuBar);
JPanel swingPanel = new JPanel(); swingPanel.add(new Panel());
Panel awtPanel = new Panel(); awtPanel.add(new Button("Button"));
import java.awt.*;
import javax.swing.*;public class T
{
public static void main(String args[])
{
JFrame frm = new JFrame();
frm.setSize(400,300);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem item;
item = new JMenuItem("New");
menu.add(item);
item = new JMenuItem("Open");
menu.add(item);
item = new JMenuItem("Save");
menu.add(item);
item = new JMenuItem("Close");
menu.add(item);
item = new JMenuItem("Quit");
menu.add(item);
menuBar.add(menu);
frm.setJMenuBar(menuBar);
JPanel swingPanel = new JPanel();
swingPanel.add(new Panel());
Panel awtPanel = new Panel();
awtPanel.add(new Button("Button"));
swingPanel.add(awtPanel);
frm.getContentPane().add(swingPanel);
frm.show();
}
}
详细的请参考<<JAVA图形开发,卷II,SWING>>,名字记的不太准.很厚的一本书.
再调Native Method, 所以...
好象这些容器有个什么什么属性, 只要设一下,可能会对你的问题有帮助.
不过我记不太清了. 自己的查书吧.
为什么一定要用AWT呢?
能说说看吗?
轻量组件不显示在他们自己的窗口中,而是显示在他们的重量容器的窗口中。
如果容器是同类的(即他包含的组件都是轻量的活都是重量组件),则按组件被添加到容器的顺序来确定他的顺序层次。
如果是异类的,比较麻烦。你可以这样做,把相同的分类的轻量组件添加到一个重量容器中,最后布局窗口上的这些重量容器就可以了。
至于你说的菜单的问题,就是这个原因,解决办法这样。
调用JPopupMenu.setDefaultLightWeightPopupEnabled( false );就可以解决了,他是JPopupMenu的一个静态方法,其中参数的意义就是把弹出式菜单实例化为轻量的还是重量的,显然了,false的时候为重量的,true的时候为轻量的。
有个条件,你最好在系统初始化或者初始化容器上的东西的最开始调用了,否则有可能没有效果,最保险就是在最开始的时候调用。
好了,我就知道这么多了,希望能帮助你解决了你的问题