此代码为您提供了一个示例,说明如何创建没有标题栏和框架图标(例如最大化,最小化和关闭)的框架。
package org.nhooo.example.swing; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.BorderLayout; import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; public class UndecoratedFrame { private static Point point = new Point(); public static void main(String[] args) { final JFrame frame = new JFrame(); //禁用或启用此框架的装饰。通过设置未装饰 // 设置为true将会删除框架的标题栏,包括最大化, // 最小化和关闭图标。 frame.setUndecorated(true); // 随着框架标题栏的移除,我们需要关闭框架 // 使用我们自己的按钮实例。 JButton button = new JButton("Close Me"); button.addActionListener(e -> System.exit(0)); // 我们在此处添加的鼠标侦听器和鼠标动作侦听器只是为了 // 使我们的框架可拖动。 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(button, BorderLayout.NORTH); frame.getContentPane().add(new JLabel("Drag Me", JLabel.CENTER), BorderLayout.CENTER); frame.setVisible(true); } }