将多个JPanels添加到容器中,并在之间添加空间/边界



我正在创建一个具有三个jpanels的程序:一个容器,在容器内部是两个jpanels,一个将保持按钮,一个将容纳内容。我让它们都表现得很远,而且看起来不错,我希望唯一的问题是我希望在两个或两个之间添加一些空间或边框(如果可能的话,或者在按钮菜单周围)外部布局设置为边框布局,我似乎无法在两个内部的布局之间添加边框。到目前为止,这是我的代码:

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);
        }
    });
}
}

牵引框将是一个拖动,因为该布局可以执行我需要的功能,但是按钮菜单从技术上讲可以是任何布局,只要我可以在列表中使用标签将按钮/其他项目放置在列表中每个旁边。

任何帮助都非常感谢。

我将使用boxlayout和间距使用

panel.add(Box.createRigidArea(new Dimension(x, y)));

这是一些不错的例子。

我建议gridbaglayout

beakause在组件之间意图空间

更容易

这应该帮助您添加所需的边框类型:http://docs.oracle.com/javase/tutorial/uiswing/components/border.html

您可以从这样的红线边框开始:buttonmenu.setborder(borderfactory.createlineborder(color.red));

相关内容

  • 没有找到相关文章

最新更新