2012-11-01 48 views
0

我正在创建一个包含三个jpanel的程序:一个容器,在容器内部有两个jpanels,一个用来存放按钮,另一个用来存放内容。我已经让他们都显示到目前为止,它看起来不错,唯一的问题,我希望增加一些空间或边界之间或两者之间(或按钮菜单如果可能的话),但由于内部面板设置为空布局和外部布局设置为边框布局,我似乎无法在两个内部边框之间添加边框。这是我到目前为止的代码:添加多个jpanel到容器,添加空间/边界?

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因为该布局做什么,我需要它,但按钮的菜单可以在技术上是任何布局,只要它可以让我将按钮/其他项目放置在每个旁边都有标签的列表中。

任何帮助,非常感谢。

+0

**不使用之间意图空间'AbsoluteLayout'使用恰当的['LayoutManager'](http://docs.oracle.com /javase/tutorial/uiswing/layout/visual.html)**并添加* padding *和/或*边界*将变得轻而易举 –

回答

2

我会使用的BoxLayout和间距使用

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

Here有一些体面的例子。