gpt4 book ai didi

Java -- JDialog 不可移动

转载 作者:搜寻专家 更新时间:2023-10-31 20:05:50 24 4
gpt4 key购买 nike

什么代码有助于使 JDialog 不可移动?我看过两个选项:

  1. setUndecorated(true); 有效但删除了所有修饰。
  2. addComponentListener 并覆盖 componentMoved() 方法,这会导致 JDialog 随后调用 induceEpilepticSeizure() 移动时。

有什么想法吗?

最佳答案

我的第一直觉是——你不能,除非你使用 setUndecorated(true)...你可以手动在那里放置一些修饰,但是,好吧,呃!

因此,如果您想要原生装饰,并且希望它在没有使用组件监听器带来的可怕闪烁的情况下保持不动,我认为您不能。

您可以手动创建一个看起来像默认边框的边框...这是一个如何操作的示例,尽管我故意让边框看起来像您一整天看到的最丑陋的东西。您需要找到 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);
}

关于Java -- JDialog 不可移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7310474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com