5
什么代码将有助于作出JDialog
不可移动?我已经看了两个选项:爪哇 - 的JDialog不可移动
setUndecorated(true);
这工作,但删除所有的礼品。addComponentListener
并重写componentMoved()
方法,这会导致JDialog
随后调用induceEpilepticSeizure()
在移动。
任何想法?
什么代码将有助于作出JDialog
不可移动?我已经看了两个选项:爪哇 - 的JDialog不可移动
setUndecorated(true);
这工作,但删除所有的礼品。addComponentListener
并重写componentMoved()
方法,这会导致JDialog
随后调用induceEpilepticSeizure()
在移动。任何想法?
我的第一直觉就是 - 你不能,除非你使用setUndecorated(真)...你可以手动把一些边角料那里,但是,好了,噢!
所以,如果你想在本地饰物,你想它没有不动产从使用的组件监听可怕的闪烁,我觉得你不能。
您可以手动创建一个像默认边框一样的边框......下面是一个如何实现它的示例,尽管我故意将边框看作您整天看到的最丑陋的东西。你需要找到正确的BorderFactory调用组合来实现你想要做的事情。
public static void main(String[] args) throws InterruptedException {
JDialog frame = new JDialog((Frame) null, "MC Immovable");
frame.setUndecorated(true);
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createEtchedBorder(Color.GREEN, Color.RED));
panel.add(new JLabel("You can't move this"));
frame.setContentPane(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
我不使用setUndecorated(true)的原因是我想保留默认边框。窗口是否是无边界的?哥们,谢啦。 –
你能解释一下你为什么要这样做吗?它可能会提供一种可行的方法。 –