我正在使用Jframe和Jpanels一个接一个地显示6个块。然而,我在块旁边的左侧(不是我添加的灰色边框)得到一个小间隙但是我希望盒子与屏幕的侧面齐平。
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Color;
public class JavaTask1CW
{
public static JLabel createLabel(String text)
{
JLabel label = new JLabel(text);
label.setFont(new Font ("Ariel",Font.BOLD,30));
return label;
}
public void go()
{
JFrame frame = new JFrame();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();
frame.setLayout(new BorderLayout(0,0));
panel1.setLayout(new BorderLayout(0,0)); // 0 pixel gaps
panel3.setLayout(new GridLayout(6,0)); //Column panel 2 west
frame.add(panel1);
panel1.add(panel2, BorderLayout.WEST);
panel2.add(panel3, BorderLayout.WEST);
for ( int i = 0 ; i < 5 ; i++ ) {
panel3.add( new ColorLabel( 100, 100, Color.GREEN,1,Color.GRAY) );
}
panel3.add( new ColorLabel( 100, 100, Color.YELLOW,1,Color.GRAY) );
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
JavaTask1CW ob = new JavaTask1CW();
ob.go();
}
}
答案 0 :(得分:0)
您忘记了setLayout
到panel2
,您要在其中添加其他面板。 panel2
默认为FlowLayout
。所以你可以创建一个没有间隙的,或者从面板中getLayout
投射它并将间隙设置为0.一个可能的解决方案:
FlowLayout fl = new FlowLayout(FlowLayout.LEFT, 0, 0);
panel2.setLayout(fl); // 0 pixel gaps