gpt4 book ai didi

java - 按下按钮时更新 JPanel 中的图形

转载 作者:行者123 更新时间:2023-12-01 11:47:37 25 4
gpt4 key购买 nike

我的主类扩展了 JFrame 并有一个包含图形组件的 JPanel,之前我有以下代码:

    public class StartGUI extends JFrame implements ActionListener {

public StartGUI {

graphArea = new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
drawNetwork(myNetwork, this, g);
}
};

add(graphArea);
}

但是现在我希望将图形区域更改为仅在按下 JButton 后才显示,我将如何移动此 JPanel 来更新 actionPerformed 方法中的drawNetwork?

public void actionPerformed(ActionEvent e) {
if(e.getSource() == readButton) {
graphArea = new JPanel() {
public void paintComponent(Graphics g) {
super.paintComponent(g);
drawNetwork(myNetwork, this, g);

}
};
}

以上似乎不起作用,我该如何解决这个问题?

最佳答案

据我从您的评论中了解到,您只需要分离模型(myNetwork)和 View (graphArea)即可。

创建并添加 graphArea 但是

        public void paintComponent(Graphics g) {
super.paintComponent(g);
if (myNetwork!=null) {
drawNetwork(myNetwork, this, g);
}
}

最初网络为空(或者可能是某些 isInitialized() 检查)。选择文件并创建网络后,只需调用 graphArea .repaint() 即可反射(reflect)模型更改。

关于java - 按下按钮时更新 JPanel 中的图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29032519/

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