gpt4 book ai didi

java swing - 为面板和里面的所有面板设置背景

转载 作者:行者123 更新时间:2023-11-29 03:45:54 25 4
gpt4 key购买 nike

我有一个 jpanel 和内部 jpannels。
当我动态设置面板背景时,内部颜色不会改变。
初始化:

 myPanel.setOpaque(true)

然后

 myPanel.setBackground(...)

有没有办法不循环或直接设置所有内框的背景?
谢谢。

最佳答案

没有,但是如果您将内部面板设置为非不透明(透明),您可以直接更改外部面板:

inner.setOpaque(false);

你总是可以创建一个你可以用来代替 JPanel 的类:

class TransparentJPanel extends JPanel {
{
setOpaque(false);
}
}

完整示例:

static class TransparentJPanel extends JPanel {{
setOpaque(false);
}}

public static void main(String... args) throws Exception {

JFrame frame = new JFrame("Test");

final JPanel panel;

frame.add(panel = new JPanel() {{
add(new TransparentJPanel());
add(new TransparentJPanel());
add(new TransparentJPanel());
}}, BorderLayout.CENTER);

frame.add(new JButton(new AbstractAction("Toggle") {

@Override
public void actionPerformed(ActionEvent e) {
if (panel.getBackground().equals(Color.RED))
panel.setBackground(Color.GREEN);
else
panel.setBackground(Color.RED);
}
}), BorderLayout.SOUTH);


frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setVisible(true);
}

关于java swing - 为面板和里面的所有面板设置背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926509/

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