gpt4 book ai didi

java - 禁用 JPanel 上的绘画

转载 作者:行者123 更新时间:2023-12-01 17:31:41 24 4
gpt4 key购买 nike

我正在尝试完全禁用 JFrame 一部分上的所有绘制和刷新。我通过简单地重写 public void Paint(Graphics) 就在整个 JFrame 上获得了所需的效果,如下所示:

import javax.swing.*;

class Test extends JFrame {

Test () {
setBounds(20,20, 100,100);
setVisible(true);
}

//This disables all painting and refreshing ON A JFRAME.
//Just doing this on a JPanel doesn't work.
public void paint (Graphics g) {}

public static void main (String[] args)
{ new Test(); }

}

我想要同样的效果,但仅限于 JFrame 的特定区域。我希望能够像平常一样将 GUI 组件添加到框架的其余部分。我尝试禁用双缓冲(使用 JPanel 的构造函数)并重写以下方法(扩展 JPanel 和 JComponent),如下所示:

public class DontRefresh extends JComponent/JPanel {
public void paint (Graphics g) {}
public void paintComponent (Graphics g) {}
public void repaint () {}
public void update (Graphics g) {}
public void updateUI () {}
}

我还尝试通过以下方式禁用刷新:

DontRefresh component = new DontRefresh();
RepaintManager.currentManager(component).markCompletelyClean(component);

但没有任何效果。

最佳答案

好吧,在不确切知道你在做什么的情况下,我建议你在你不希望任何东西出现的空间里有一个“填充面板”(只是一个你不做任何事情的JPanel),然后有其他的其他一切的面板。

假设您有一个 JFrame。如果您希望右上角不显示任何内容,可以用 4 个 JPanel 填充 JFrame,每个角各一个(或 3 个,其中一个在左侧,一个在右上角,一个在右下角)。然后将所有 Swing 组件放入其他面板中。我不知道这是否能实现您的目的,但我不完全确定您的目的是什么,所以这是我能做的最好的:)我希望它有帮助!

关于java - 禁用 JPanel 上的绘画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10263931/

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