当前位置: 首页 > 知识库问答 >
问题:

JPanel中可调整大小的JFreeChart

桓修能
2023-03-14
public class DynamicLineAndTimeSeriesChart extends JPanel implements ActionListener {
    private ArrayList<TimeSeries> Series = new ArrayList<TimeSeries>();
    private ArrayList<Double> Last = new ArrayList<Double>();
    private String Id1;
    private Timer timer = new Timer(250, this);
    public DynamicLineAndTimeSeriesChart(String id) {

        Runtime runtime = Runtime.getRuntime();
        int NoOfProc = runtime.availableProcessors();
        for (int i = 0; i < NoOfProc; i++) {
            Last.add(new Double(100.0));
            Series.add(new TimeSeries("Core" + i, Millisecond.class));
        }
        Id1 = id;
        final TimeSeriesCollection dataset = new TimeSeriesCollection();
        for (int i = 0; i < NoOfProc; i++) {
            dataset.addSeries(this.Series.get(i));
        }
        final JFreeChart chart = createChart(dataset);
        timer.setInitialDelay(1000);
        chart.setBackgroundPaint(Color.LIGHT_GRAY);

        //Created JPanel to show graph on screen
        final JPanel content = new JPanel(new GridLayout());
        final ChartPanel chartPanel = new ChartPanel(chart);
        content.add(chartPanel, BorderLayout.CENTER);
        content.revalidate();
        this.add(content);

        timer.start();
    }
JPanel main = new JPanel(new BorderLayout());
main.add(demo);
jTabbedPane1.add("Core", main);
demo.setVisible(true);

框架设计采用NetBeans进行。我尝试了所有的解决方案,比如将布局从BorderLayout更改为GridBagLayout,甚至是这里提到的那个。

共有1个答案

黎征
2023-03-14

borderlayout.center应该让chartpanel随着框架大小的调整而增长。我猜您有一个JPanel和一个FlowLayout,它继续使用图表面板的首选大小。由于flowlayout是默认值,您可能必须查找它。

编辑:这里有一个完整的示例,它将折线图添加到选项卡式窗格中。

编辑:您的DynamicLineAndTimeSeriesChart具有默认的FlowLayout;我想您需要一个GridLayout

public DynamicLineAndTimeSeriesChart(String id) {
    this.setLayout(new GridLayout());
    …
}
 类似资料:
  • 起初,我只有文本栏和状态栏,如下例所示(我不需要父容器): 这是应该的。但是,请记住状态栏的高度。现在,如果您将StatusBar类更改为下面的类,那么高度几乎会增加一倍。为什么会这样? 这种设置并不需要更多的垂直空间: 我可以让这成为一个新问题,但我觉得不值得...

  • 问题内容: 我是Java的新手,开始学习挥杆技巧,并且在JFrame中调整JPanel的大小时遇到​​问题。我正在关注本教程: http://vincentramdhanie.blogspot.com/2009/11/cardlayout-with- netbeans.html 因为最终我将学习每种不同的布局,并且现在已经进入CardLayout。在上面,有一个JPanel用于状态面板。那也是我想

  • 我是Java新手,开始学习swing,在JFrame中调整JPanel的大小时遇到问题。我将学习本教程: http://vincentramdhanie.blogspot.com/2009/11/cardlayout-with-netbeans.html 因为最终我正在学习每一种不同的布局,现在我来到了CardLayout。在上面,有一个JPanel用于状态面板。这也是我想要做的,但是当我将一个J

  • 已经建立了一个小的测试SWING应用程序,有三个面板。一个主JPanel,包含两个较小的JPanel。一个在左边(板面板),另一个在右边(侧板)。通过调用min、preferred和max size方法,两个内部面板都被设置为请求的特定大小。右面板中的一个按钮将父JFrame设置为not re-sizable。在父帧设置为不可调整大小之前,一切看起来都很好,这会导致(?!)调整框架和主面板的大小,

  • 问题内容: 我有一个与作为布局经理。 在南边界中,我有一个,我希望用户可以调整其大小,即用户可以单击边界的边缘并将其向上拖动以使其变大。 您是否知道我可以做到这一点? 问题答案: 为了使框架中的面板可单独调整大小,您需要将其添加到。 而不是将其放置在框架的南部,而是将其放置在中心。拆分窗格将使拆分中的底部面板看起来像在南方,而拆分中的顶部面板将位于框架的中心。 确保使用设置两个面板的方向。 然后,