gpt4 book ai didi

Java外观和主要

转载 作者:行者123 更新时间:2023-11-29 06:17:46 25 4
gpt4 key购买 nike

如果我在单击按钮后在 actionPerfomed 中使用 java 外观,则效果更改无法正常工作,而只是发生轻微变化。

但是,如果我将相同的代码放在 main 上,它会正常工作。

解决这个问题的方法是什么?

最佳答案

当您在布置图形用户界面之前更改外观和感觉时,所有图形用户界面组件都知道如何绘制它们自己。如果您在以后更改它,则需要更新 UI 树以使更改传播到所有组件:

UIManager.setLookAndFeel(lnfName);
SwingUtilities.updateComponentTreeUI(frame);
frame.pack();

参见 java documentation对这个。

这是一个在按下按钮时改变外观的简单示例:

public static void main(String[] args) {

final JFrame frame = new JFrame("Test");

frame.add(new JButton(new AbstractAction("Press to change") {

int current = 0;

@Override
public void actionPerformed(ActionEvent e) {

LookAndFeelInfo[] lafs = UIManager.getInstalledLookAndFeels();
LookAndFeelInfo laf = lafs[current++ % lafs.length];

try {
UIManager.setLookAndFeel(laf.getClassName());
SwingUtilities.updateComponentTreeUI(frame);
frame.pack();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}));

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}

如果您不想打包 frame(更改它的大小),只需调用repaint即可。

关于Java外观和主要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4415836/

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