0

ChartPanelをJFrameに追加すると、JFrameが大きくまたは小さくドラッグされると、ChartPanelがフレームに合わせてサイズ変更されることがわかりました。ただし、ChartPanelをJPanelに追加すると、JFrameのサイズが変更されると、JPanelのサイズ(幅と高さ)がJFrameに合うように変更されます。ただし、ChartPanelはその寸法を維持するだけであり、拡大されたJPanelには多くの空きスペースが残ります。GUIのコンテナを使用してChartPanelのサイズを変更するにはどうすればよいですか?

これが私のサンプルコードです:

  1. この場合、チャートはJFrameでサイズ変更されます
ChartPanel chartPanel = new ChartPanel(createWhateverChart());
JFrame frame = new JFrame();
frame.add(chartPanel);
  1. この場合、管理とチャートの更新を容易にするために、最初にChartPanelをJPanelに追加しますが、ChartPanelはJPanel/JFrameでサイズ変更されません。
ChartPanel chartPanel = new ChartPanel(createWhateverChart());
JPanel panel = new JPanel("Who cares");
panel.add(chartPanel, BorderLayout.CENTER);
JFrame frame = new JFrame();
frame.add(panel);
4

1 に答える 1

3

私のコードを試してみてください、そしてそれはうまくいきます。

ご了承ください :

panelMainを含む1つのフレームがあり、panelMainにはsubPanelが含まれ、subPanelにはChartPanelが含まれています。

frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));                      
JPanel panelMain = new JPanel(new GridLayout(0,2));            
ChartPanel chartPanel = createChart();        
JPanel subPanel = new JPanel(new BorderLayout());   
subPanel.setBorder(BorderFactory.createTitledBorder("Consommation"));
subPanel.setPreferredSize(new Dimension(400, 200));    
subPanel.add(chartPanel);   


panelMain.add(subPanel);        
frame.add(panelMain);        
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);

そして今、ウィンドウアプリケーションのサイズを変更すると。chartPanelは自動的にサイズ変更されます。お役に立てれば。

于 2014-01-17T09:12:40.443 に答える