2014-02-20 91 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