我想出现两个不同的框架,每个框架都有不同的结果。我的代码是:
JFrame frame = new JFrame("Before the outage in Maximization");
MyCanvas canvas = new MyCanvas(initials.vaccesspoint,initials.vTerminal);
frame.setSize(initials.frameSize, initials.frameSize);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(canvas);
frame.setVisible(true);
Graphics graph = canvas.getGraphics();
canvas.paintComponent(graph);
在此之后,我编写了一些代码来更改最后一帧的索引,然后再次运行:
JFrame frame2 = new JFrame("Before the outage in Maximization");
MyCanvas canvas2 = new MyCanvas(initials.vaccesspoint,initials.vTerminal);
frame2.setSize(initials.frameSize, initials.frameSize);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.add(canvas2);
frame2.setVisible(true);
Graphics graph2 = canvas2.getGraphics();
canvas2.paintComponent(graph2);
然后它们出现两个框架,但它们具有相同的信息。这是错误的。请问有什么帮助吗?
最佳答案
这两行是相同的
MyCanvas canvas = new MyCanvas(initials.vaccesspoint,initials.vTerminal);
MyCanvas canvas2 = new MyCanvas(initials.vaccesspoint,initials.vTerminal);
所以我们必须假设某个地方的数据是不同的..
这些行不是必需的
Graphics graph = canvas.getGraphics();
canvas.paintComponent(graph);
Graphics graph2 = canvas2.getGraphics();
canvas2.paintComponent(graph2);
事实上,我想说这是一个坏主意。您无法控制绘制过程,而 Swing 可以控制。
关于java - JFrame更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12299444/