2012-03-13 4 views
1

私はnetbeans GUIジェネレータを使用してGUIを生成しました。私は2つのパネルを持っており、このうちの1つでは、グラフパネルを表示したいと考えています。 NetBeansので生成されたコードは次のとおりです。JfreeChart(ChartPanel)をNetBeansによって生成されたJpanelで表示する方法

TimeSeriesCollection dataset = new TimeSeriesCollection(); 
      for (int i = 0; i < 5; i++) { 
       TimeSeries pop = new TimeSeries("try "+i, Day.class); 
       pop.add(new Day(10+i, 1+i, 2004+i), 100*(i+2)); 
       pop.add(new Day(10+1*i, 1+2+i, 2004+i+1), 150*(i+2)); 
       pop.add(new Day(10+2*i, 1+2*i, 2004+i+2), 150*(i+3)); 
       pop.add(new Day(10+3*i, 1+2*i, 2004+i+3), 150*(i+4)); 
       pop.add(new Day(10+4*i, 1+2*i, 2004+i+10), 150*(i+5)); 
       dataset.addSeries(pop); 
      } 
      TimeSeries pop = new TimeSeries("Try asjhaihsiuahsiuahiushaiushiauhsiuhasiua"+100, Day.class); 
      int i=5; 
       pop.add(new Day(1, 1+i, 2004+i), 100*(i+2)); 
       pop.add(new Day(2, 1+2+i, 2004+i+1), 150*(i+2)); 
       pop.add(new Day(3, 1+2*i, 2004+i+2), 150*(i+3)); 
       pop.add(new Day(4, 1+2*i, 2004+i+3), 150*(i+4)); 
       pop.add(new Day(5, 1+2*i, 2004+i+10), 1500*(i+5)); 
       dataset.addSeries(pop); 
      JFreeChart chart = ChartFactory.createTimeSeriesChart(
        "Population of CSC408 Town", 
        "Date", 
        "Population", 
        dataset, 
        true, 
        true, 
        false); 
      ChartPanel p = new ChartPanel(chart); 

      jPanel1.add(p); 

しかしchartpanelはJPanelの内側に表示されません..私は何を行うことができます。

private void initComponents() { 

     jPanel1 = new javax.swing.JPanel(); 

     org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1); 
     jPanel1.setLayout(jPanel1Layout); 
     jPanel1Layout.setHorizontalGroup(
      jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 
      .add(0, 394, Short.MAX_VALUE) 
     ); 
     jPanel1Layout.setVerticalGroup(
      jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 
      .add(0, 294, Short.MAX_VALUE) 
     ); 

     org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); 
     this.setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 
      .add(0, 400, Short.MAX_VALUE) 
      .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 
       .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() 
        .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addContainerGap())) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 
      .add(0, 300, Short.MAX_VALUE) 
      .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) 
       .add(layout.createSequentialGroup() 
        .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addContainerGap())) 
     ); 
    } 

iはあるが、JPanelのためのchartpanelを追加するために何をやりましたか?手伝って頂けますか?

+0

私はSwingの専門家ではないが、Netbeansのことで構築されたGroupLayoutは持っているので、それは次のようになります。

netbeansPanel.add(charPanel, BorderLayout.CENTER); netbeansPanel.validate(); 

また、あなたが新しいものとチャートを更新したい場合は、ケースにパネルを取り外すことができますあなたのチャートのために残っている場所はありません - それを追加すると、そこには表示されません...チャートを追加する前に 'jPanel1.setLayout(new xxx)'を試してみてください。もしあなたがどこに問題があるのか​​分かっていれば...何xxxを使うことができるのか分かりません。ちょうどデフォルトの 'new GroupLayout()'は動くでしょう – assylias

+0

私はChartPanelを試していますp = new ChartPanel(chart); jPanel1.setLayout(new BorderLayout()); jPanel1.add(p、BorderLayout.CENTER);しかし何:( – JackTurky

答えて

0

セットNetBeansパネルのレイアウトをBorderLayout(デザインプレビューから右クリックしてからレイアウトを設定するか、パネルPanel.setLayoutから行います)。その後、チャートパネルを表示するには、チャートを追加するだけですパネルを親パネルに入れ、再塗りを依頼する。

netbeansPanel.removeAll(); 
netbeansPanel.add(charPanel); 
netbeansPanel.validate(); 
+0

私は次元d =新しい次元(300200)を行う場合は、 p.setSize(D); p.setPreferredSize(D); BorderLayoutのレイアウト=新しいのBorderLayout(); this.setLayout(レイアウト)。 this.add(p、BorderLayout.CENTER);これはうまく動作しますが、this.getSize()を使用するとディメンション0,0が返されます。理由はわかりません... – JackTurky

+0

なぜ呼び出すかgetSize()?これは親コンポーネントのサイズです。親パネルのレイアウトを設定した後に行うべきことは、新しいパネルを追加してレイアウトマネージャがあなたのサイズを処理することです。 –

+0

私はjPanel1サイズのグラフの次元を設定しようとしますが、何も... – JackTurky

関連する問題