0
因此對於這個程序,我試圖在左邊有一個JToolBar
,右邊是這個頻譜面板。我目前正在使用BorderLayout
進行添加,但正如您所看到的,我添加的光譜(青色)在其周圍有一個黑色邊框(以下面板)。爲什麼它不能填充JPanel的右側?調整GUI JPanels以適應
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Color;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JToolBar;
public class Spectrum extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
/*
*
*/
public Spectrum(){
JPanel main = new JPanel(new BorderLayout());
JPanel rightside = new JPanel();
JLabel spectrum = new JLabel("spectrum goes here");
JToolBar toolbar = new JToolBar(null, JToolBar.VERTICAL);
JButton button1 = new JButton("Icon 1");
JButton button2 = new JButton("Icon 2");
main.setBackground(Color.RED);
main.setPreferredSize(new Dimension(800, 500));
rightside.setBackground(Color.black);
spectrum.setPreferredSize(new Dimension(750,500));
spectrum.setOpaque(true);
spectrum.setBackground(Color.cyan);
toolbar.setPreferredSize(new Dimension(50, 500));
toolbar.setFloatable(false);
button1.setOpaque(true);
button2.setOpaque(true);
button1.setBackground(Color.blue);
button2.setBackground(Color.green);
toolbar.add(button1);
toolbar.add(button2);
rightside.add(spectrum);
main.add(toolbar, BorderLayout.WEST);
main.add(rightside, BorderLayout.EAST);
setContentPane(main);
pack();
setVisible(true);
}
}
添加rightside到中心... main.add(rightside,BorderLayout.CENTER);避免篡改PreferredSizes太多。無論如何,Swing都會讓你的組件擺脫困境。 –
如果我刪除優先大小,並嘗試添加版權(BO.center)它只佔用整個框架,並覆蓋工具欄 – bforcer
註釋只是setidededSize ... //spectrum.setPreferredSize(new Dimension (750500)); –