Java 将多个JPanel添加到容器,在容器之间添加空格/边框?
我正在创建一个有三个JPanel的程序:一个容器,容器内有两个JPanel,一个用来保存按钮,另一个用来保存内容。到目前为止,我已经让它们都显示出来了,而且看起来不错,唯一的问题是我希望在它们之间添加一些空间或边框(或者在按钮菜单周围,如果可能的话),但是由于两个内部面板都设置为空布局,而外部布局设置为边框布局,我似乎无法在两个内部面板之间添加边框。以下是我目前的代码:Java 将多个JPanel添加到容器,在容器之间添加空格/边框?,java,swing,border,layout-manager,absolutelayout,Java,Swing,Border,Layout Manager,Absolutelayout,我正在创建一个有三个JPanel的程序:一个容器,容器内有两个JPanel,一个用来保存按钮,另一个用来保存内容。到目前为止,我已经让它们都显示出来了,而且看起来不错,唯一的问题是我希望在它们之间添加一些空间或边框(或者在按钮菜单周围,如果可能的话),但是由于两个内部面板都设置为空布局,而外部布局设置为边框布局,我似乎无法在两个内部面板之间添加边框。以下是我目前的代码: import java.awt.BorderLayout; import java.awt.Color; import jav
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class internal_test extends JFrame {
int height = 480;
int width = 640;
public internal_test() {
initUI();
}
private void initUI() {
JPanel container = new JPanel();
container.setLayout(new BorderLayout());
container.setBackground(Color.black);
JPanel buttonMenu = new JPanel();
buttonMenu.setLayout(null);
buttonMenu.setBackground(Color.DARK_GRAY);
buttonMenu.setPreferredSize(new Dimension(150, height));
JPanel dragFrame = new JPanel();
dragFrame.setLayout(null);
dragFrame.setPreferredSize(new Dimension(200, 100));
dragFrame.setSize(new Dimension(490, height));
dragFrame.setBackground(Color.gray);
container.add(buttonMenu, BorderLayout.WEST);
container.add(dragFrame, BorderLayout.CENTER);
// container.setBorder(new EmptyBorder(new Insets(10, 10, 10, 10)));
add(container);
pack();
setTitle("internal_test V0.1");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(width, height);
setLocationRelativeTo(null);
}
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
internal_test c = new internal_test();
c.setVisible(true);
}
});
}
}
dragFrame将是一个DragLayout,因为该布局可以满足我的需要,但是按钮菜单从技术上讲可以是任何布局,只要它允许我将按钮/其他项目放置在一个列表中,每个按钮/其他项目旁边都有一个标签
非常感谢您的帮助。这将帮助您添加所需的边框类型: 您可以从红线边框开始,如下所示:
buttonMenu.setBorder(BorderFactory.createLineBorder(Color.red)) 这将帮助您添加所需的边框类型: 您可以从红线边框开始,如下所示:
buttonMenu.setBorder(BorderFactory.createLineBorder(Color.red)) 我会使用BoxLayout和空格
panel.add(Box.createRigidArea(new Dimension(x, y)));
下面是一些不错的例子。我会使用BoxLayout和空格
panel.add(Box.createRigidArea(new Dimension(x, y)));
有一些不错的例子。我建议
因为我建议在组件之间设置空格更容易
因为更容易在组件之间使用空格不要使用绝对布局
使用合适的填充和/或边框,添加填充和/或边框将变得轻松不使用绝对布局
使用合适的填充和/或边框将变得轻松