如何从任何java程序中删除窗口框。因为我想让它看起来没有边框。我知道在jre上运行的任何jar文件会自动获得这样的窗口。所以我想知道是否有解决方法。
提前致谢
这是一张我想要做的照片
答案 0 :(得分:4)
您还可以使用默认情况下未修饰的JWindow
。
<强>更新强>
如果删除边框,则负责移动和调整窗口大小...
此“基本”示例演示了如何使用鼠标移动JWindow
。这使得窗口周围的“拖动区域”宽度为10像素。
调整大小将是类似的过程,但您需要决定调整大小的方向(即,它可能需要您在调整大小时移动窗口;)
import java.awt.Component;
import java.awt.Cursor;
import java.awt.EventQueue;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JWindow;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class TestMoveWindow {
public static void main(String[] args) {
new TestMoveWindow();
}
public TestMoveWindow() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JWindow window = new JWindow();
window.setSize(200, 200);
window.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
MouseAdapter mouseHandler = new MouseAdapter() {
private Point offset;
protected boolean isWithinBorder(MouseEvent e) {
Point p = e.getPoint();
Component comp = e.getComponent();
return p.x < 10 || p.y < 10 || p.x > comp.getWidth() - 10 || p.y > comp.getHeight() - 10;
}
@Override
public void mouseMoved(MouseEvent e) {
Component comp = e.getComponent();
if (isWithinBorder(e)) {
System.out.println("Move");
comp.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
} else {
System.out.println("Default");
comp.setCursor(Cursor.getDefaultCursor());
}
}
@Override
public void mouseDragged(MouseEvent e) {
if (offset != null) {
Point pos = e.getLocationOnScreen();
int x = pos.x - offset.x;
int y = pos.y - offset.y;
System.out.println(x + "x" + y);
SwingUtilities.getWindowAncestor(e.getComponent()).setLocation(x, y);
}
}
@Override
public void mousePressed(MouseEvent e) {
if (isWithinBorder(e)) {
Point pos = e.getComponent().getLocationOnScreen();
offset = new Point(e.getLocationOnScreen());
offset.x -= pos.x;
offset.y -= pos.y;
}
}
};
window.getContentPane().addMouseListener(mouseHandler);
window.getContentPane().addMouseMotionListener(mouseHandler);
window.setLocationRelativeTo(null);
window.setVisible(true);
}
});
}
}