不确定你在寻找什么,但你可以添加JMenuBar到JFrame- JFrame.setJMenuBar().看看如何使用菜单教程的详细信息.
编辑:
下面是一个过度简化的未装饰框架示例,带有菜单,只是为了演示这个想法.
您可能希望转向现有解决方案 - JIDE就是ResizableFrame为此目的.它是开源JIDE-oss的一部分.物质L&F支持标题栏定制(参见Substance LaF发生了什么?).您也可以通过@camickr 非常有效地利用ComponentMover和ComponentResizer分类,有关详细信息,请参阅调整组件大小的文章.
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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21770 次 |
| 最近记录: |