我想知道如果我可以添加的JMenuBar到环绕中的内容窗格中的JFrame或JRootPane中的装饰窗,否则边境。 我看到像Firefox或Photoshop中有在装修窗口菜单栏中的应用程序。
这可能吗? 我环顾四周,谷歌,但我一直没能找到过这种事情任何结果。 我希望Java有这个能力。
我想知道如果我可以添加的JMenuBar到环绕中的内容窗格中的JFrame或JRootPane中的装饰窗,否则边境。 我看到像Firefox或Photoshop中有在装修窗口菜单栏中的应用程序。
这可能吗? 我环顾四周,谷歌,但我一直没能找到过这种事情任何结果。 我希望Java有这个能力。
不知道你在寻找什么,而是你可以添加JMenuBar
到JFrame
- JFrame.setJMenuBar() 。 看看如何使用菜单教程的详细信息。
编辑:
下面是与菜单未修饰帧的过于简化的示例,只是为了演示的想法。
你可能希望把现有的解决方案-基德有ResizableFrame
用于这一目的。 它是开源的一部分基德和OSS 。 物质L&F有标题栏自定义支持(见发生了什么事物质的LaF? )。 您也可以非常有效地利用ComponentMover
和ComponentResizer
通过@camickr类,请参见调整大小组件文章的更多细节。
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class UndecoratedFrameDemo {
private static Point point = new Point();
public static void main(String[] args) {
final JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
point.x = e.getX();
point.y = e.getY();
}
});
frame.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
Point p = frame.getLocation();
frame.setLocation(p.x + e.getX() - point.x,
p.y + e.getY() - point.y);
}
});
frame.setSize(300, 300);
frame.setLocation(200, 200);
frame.setLayout(new BorderLayout());
frame.getContentPane().add(new JLabel("Drag to move", JLabel.CENTER),
BorderLayout.CENTER);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Menu");
menuBar.add(menu);
JMenuItem item = new JMenuItem("Exit");
item.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
menu.add(item);
frame.setJMenuBar(menuBar);
frame.setVisible(true);
}
}
试试这个...
添加的JMenuBar到JFrame
JMenuBar menuBar = new JMenuBar();
myFrame.setJMenuBar(menuBar);
添加的JMenuBar到的JPanel
JMenuBar menuBar = new JMenuBar();
myPanel.add(menuBar);
看到这个的JMenuBar教程链接有关该主题的更多信息。
我做了一些挖掘和简单的答案是...没有。
基本上外框装饰被关闭加载到操作系统,所以我们没有任何访问它的内容。
不过,如果你想要去了很多的工作,你可以实现自己的装修。 你需要采取的调整,虽然移动的责任。
你可能想看看
http://java-swing-tips.blogspot.com.au/2010/05/custom-decorated-titlebar-jframe.html和http://www.paulbain.com/2009/10/13/howto-draggabe- JFrame的,不装饰/的想法