2014-02-20 92 views
0

GUI在GUI上创建边框

我创建了此图形界面,缺少的是“个人信息”边框。我知道setBorder(BorderFactory.createTitledBorder("PERSONAL INFORMATION))会创建一个边框,但是我如何找到左上角的标题,并输入正确的尺寸,以便在不使用布局管理器的情况下不会按下按钮。非常感激。

+0

标题上/默认左边框插图由组件自动计算'getPreferred/Miniumum/MaximumSize'方法...... – MadProgrammer

+1

*” ..不使用布局经理人。“*那是你失去我的地方。 Java GUI可能需要在多种平台上工作,使用不同的屏幕分辨率和使用不同的PLAF。因此,它们不利于组件的准确放置。为了组织强大的图形用户界面,请使用布局管理器或[它们的组合](http://stackoverflow.com/a/5630271/418556)以及[空格]的布局填充和边框(http: //stackoverflow.com/q/17874717/418556)。 –

+0

@AndrewThompson我们不允许使用任何布局管理器,我们必须通过计算位置和大小来手动布局每个组件。我希望我们被允许,这会让事情变得更容易。 –

回答

4
    -

import java.awt.*; 
    import javax.swing.*; 
    import javax.swing.border.*; 

class BorderTest extends JFrame 
{ 
public BorderTest() 
{ 
setTitle("Border Test"); 
setSize(450, 450); 

JPanel content = (JPanel) getContentPane(); 
content.setLayout(new GridLayout(6,2)); 

JPanel p = new JPanel(); 
p.setBorder(new BevelBorder (BevelBorder.RAISED)); 
p.add(new JLabel("RAISED BevelBorder")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new BevelBorder (BevelBorder.LOWERED)); 
p.add(new JLabel("LOWERED BevelBorder")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new LineBorder (Color.black, 5)); 
p.add(new JLabel("Black LineBorder, thickness = 5")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new EmptyBorder (10,10,10,10)); 
p.add(new JLabel("EmptyBorder with thickness of 10")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new EtchedBorder (EtchedBorder.RAISED)); 
p.add(new JLabel("RAISED EtchedBorder")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new EtchedBorder (EtchedBorder.LOWERED)); 
p.add(new JLabel("LOWERED EtchedBorder")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new SoftBevelBorder (SoftBevelBorder.RAISED)); 
p.add(new JLabel("RAISED SoftBevelBorder")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new SoftBevelBorder (SoftBevelBorder.LOWERED)); 
p.add(new JLabel("LOWERED SoftBevelBorder")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new MatteBorder (new ImageIcon("spiral.gif"))); 
p.add(new JLabel("MatteBorder")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new TitledBorder (new MatteBorder (new ImageIcon("spiral.gif")), "Title String")); 
p.add(new JLabel("TitledBorder using MatteBorder")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new TitledBorder (new LineBorder (Color.black, 5), "Title String")); 
p.add(new JLabel("TitledBorder using LineBorder")); 
content.add(p); 

p = new JPanel(); 
p.setBorder(new TitledBorder (
    new EmptyBorder (10,10,10,10), 
    "Title String")); 
p.add(new JLabel("TitledBorder using EmptyBorder")); 
content.add(p); 

setVisible(true); 
} 

public static void main(String args[]) 
{ 
new BorderTest(); 
} 
} 
  1. 这个演示例子是显示所有类型border.i这样认为它是 有帮助你的。

enter image description here