我有chartPanel
(JFreeChart),buttonPanel
和errorPanel
。
frame.add(chartPanel, BorderLayout.PAGE_START);
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
errorPanel = new JLabel("Error String");
errorPanel.setHorizontalAlignment(JLabel.CENTER);
frame.getContentPane().add(buttonPanel, BorderLayout.CENTER);
frame.getContentPane().add(errorPanel, BorderLayout.SOUTH);
当我更改应用程序窗口的高度时,buttonPanel和errorPanel消失了。
当我不使用JLabel时:
frame.add(chartPanel);
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
frame.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
它改变了应用程序窗口的高度。如何使它正确,没有窗口缩放问题?
答案 0 :(得分:2)
当您添加到JFrame时,默认位置是CENTER但是因为您将图表添加到PAGE_START现在它不可缩放...
溶液:
拿出来然后说
frame.add(chartPanel);
以及errorPanel和ButtonPanel
使用BorderLayout创建一个新的JPanel并将其添加到Frame Layout的SOUTH。 然后在JPanel里面添加你的ButtonPanel和ErroPanel就像你在你的Jframe中所做的那样..
答案 1 :(得分:0)
试试这个:
frame.addComponentListener(new ComponentListener(){
public void componentResized(ComponentEvent e) {
frame.pack();
}
public void componentMoved(ComponentEvent e) {}
public void componentShown(ComponentEvent e) {}
public void componentHidden(ComponentEvent e) {}
});