Java--JDialog不可移动
什么代码有助于使Java--JDialog不可移动,java,swing,jdialog,Java,Swing,Jdialog,什么代码有助于使JDialog不可移动?我考虑了两种选择: 设置未装饰(true)可以工作,但会删除所有修剪 addComponentListener并重写componentMoved()方法,这会导致JDialog随后在移动时调用InquiredicSeizure() 有什么想法吗?我的第一反应是——除非你使用setUndecorated(真的)。。。你可以手动在那里放一些装饰物,但是,好吧,呃 因此,如果你想要原生的修剪,并且你想要它不可移动,而不会因为使用组件侦听器而出现可怕的闪烁,我认为
JDialog
不可移动?我考虑了两种选择:
设置未装饰(true)代码>可以工作,但会删除所有修剪
addComponentListener
并重写componentMoved()
方法,这会导致JDialog
随后在移动时调用InquiredicSeizure()
李>
有什么想法吗?我的第一反应是——除非你使用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);
}
我不使用setUnderatted(true)的原因是希望保留默认边框。窗户是无边界的吗?谢谢你,伙计。你能解释一下你为什么要这么做吗?它可能会提供一种可行的方法。