Java 我该如何参考JPanel?

Java 我该如何参考JPanel?,java,swing,Java,Swing,我一直在用java编写程序,所以我决定使用Swing作为我的GUI。我对swing没有太多的经验,所以我不确定它到底是如何管理我发送给它的对象的 我的程序包含一个需要定期更新的图形(可能每秒更新10次),使用以下代码在JPanel中绘制: private JFrame graphWindow = new JFrame("Graph"); graph = new JPanel() { protected void paintComponent(Graphics g) {

我一直在用java编写程序,所以我决定使用Swing作为我的GUI。我对swing没有太多的经验,所以我不确定它到底是如何管理我发送给它的对象的

我的程序包含一个需要定期更新的图形(可能每秒更新10次),使用以下代码在JPanel中绘制:

private JFrame graphWindow = new JFrame("Graph");
graph = new JPanel()
{
    protected void paintComponent(Graphics g)
    {
        Graphics2D g2 = (Graphics2D) g;

        // Draw the graph and labels in g2

    }
}
graphWindow.add(graph, BorderLayout.CENTER);
graphWindow.pack();
graphWindow.setSize(windowDimensions);
graphWindow.setVisible(true);
现在我有了它,所以图形只显示一次,但我不知道如何告诉它刷新。我知道如何编写随时间运行的循环,但我不知道如何刷新循环中的图形


非常感谢您能给我的任何帮助。

您看过Javadocs了吗

发件人:

重新绘制此组件

如果此组件是轻量级组件,则此方法会导致尽快调用此组件的绘制方法。否则,此方法会导致尽快调用此组件的更新方法

注意:有关AWT和Swing使用的绘制机制的更多信息,包括如何编写最有效的绘制代码的信息,请参阅AWT和Swing中的绘制

自:
JDK1.0

这可以与Swing计时器一起使用,以定期重新绘制/刷新图形

例如:


你看过Javadocs了吗

发件人:

重新绘制此组件

如果此组件是轻量级组件,则此方法会导致尽快调用此组件的绘制方法。否则,此方法会导致尽快调用此组件的更新方法

注意:有关AWT和Swing使用的绘制机制的更多信息,包括如何编写最有效的绘制代码的信息,请参阅AWT和Swing中的绘制

自:
JDK1.0

这可以与Swing计时器一起使用,以定期重新绘制/刷新图形

例如:


你看过Javadocs了吗

发件人:

重新绘制此组件

如果此组件是轻量级组件,则此方法会导致尽快调用此组件的绘制方法。否则,此方法会导致尽快调用此组件的更新方法

注意:有关AWT和Swing使用的绘制机制的更多信息,包括如何编写最有效的绘制代码的信息,请参阅AWT和Swing中的绘制

自:
JDK1.0

这可以与Swing计时器一起使用,以定期重新绘制/刷新图形

例如:


你看过Javadocs了吗

发件人:

重新绘制此组件

如果此组件是轻量级组件,则此方法会导致尽快调用此组件的绘制方法。否则,此方法会导致尽快调用此组件的更新方法

注意:有关AWT和Swing使用的绘制机制的更多信息,包括如何编写最有效的绘制代码的信息,请参阅AWT和Swing中的绘制

自:
JDK1.0

这可以与Swing计时器一起使用,以定期重新绘制/刷新图形

例如:

import javax.swing.Timer;

/// ...

final JPanel graph = new JPanel() {
    protected void paintComponent(Graphics g) {
        // ... your painting code ...
    }
}
// The following Timer repeats 10 times per second (100 millisecond delay):
Timer timer = new Timer(100, new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
        graph.repaint();
    }
});