我不是很擅长Java GUI,需要寻求帮助 .
我打算在我的 BorderLayout
以西添加图像,作为我的内容和底部的按钮 .
我创建了一个空边框,在我的南面板和我的西面板和中心面板之间做了一些填充 . 现在我只想在南边界的顶部添加一条线 .
如下面的屏幕截图所示,西面板和中心面板之间也有一条线,我该如何移除该线并将线保持在南面板的顶部?
附上我的代码:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class test {
public static void main(String[] args) {
JPanel panel1 = new JPanel(new BorderLayout());
JPanel panel2 = new JPanel(new FlowLayout());
JPanel panel3 = new JPanel(new FlowLayout());
JPanel panel4 = new JPanel(new FlowLayout());
JFrame frame = new JFrame();
panel2.add( new JLabel( "WEST <will be adding image here>" ));
panel3.add( new JLabel( "CENTER <contents>"));
panel4.add( new JLabel( "SOUTH <will be adding buttons>" ));
panel1.add(panel2, BorderLayout.WEST);
panel1.add(panel3, BorderLayout.CENTER);
panel1.add(panel4, BorderLayout.SOUTH);
panel2.setBorder(BorderFactory.createRaisedBevelBorder());
panel3.setBorder(BorderFactory.createRaisedBevelBorder());
panel4.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
frame.add(panel1);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.setSize(510,390);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setResizable(false);
}
}
3 回答
要删除WEST和CENTER之间的边框,只需删除它们的边框即可
如果要保留框架边缘的边框,请将边框添加到
panel1
.对于SOUTH,如果你想“在南边界顶部添加一条线”并保留空边框,请使用:
或
createRaisedBevelBorder()
而不是createMatteBorder
.请记住,您可以切换边框的顺序和样式 . 有关详细信息,请参阅tutorial .
试试这个:
`以下代码将组件添加到框架的内容窗格中 . 由于内容窗格默认使用BorderLayout类,因此代码不需要设置布局管理器 . 完整的程序位于BorderLayoutDemo.java文件中 .