2011-04-04 133 views
0

现在标签位于文本框的顶部。我希望能够设置文本框和标签的位置,以便标签位于文本框的左侧。更改标签和文本框的位置

 this.container = this.getContentPane(); 
     this.container.setLayout(new FlowLayout()); 

     this.searchText = new JLabel("Enter text to be searched: "); 

     this.charText = new JLabel("Enter a character: "); 

     this.target = new JTextArea(3,30); 
+0

,如果你使用GUI形式的编辑工作,你会发现这很容易。 WindowBuilder Pro支持Swing,可以插入到Eclipse中,现在免费,这要归功于Google。 http://code.google.com/javadevtools/wbpro/index.html – 2011-04-04 14:41:08

+0

您可能需要查看组织布局:http://download.oracle.com/javase/6/docs/api/javax/swing /GroupLayout.html http://download.oracle.com/javase/tutorial/uiswing/layout/group.html – 2011-04-04 15:03:39

+1

我相信你的问题与组件的大小有关。如果没有足够的空间来放置同一行中的'JLabel'和'JTextArea',布局管理器会将后者添加到新行中。因此,您将在文本区域的顶部添加标签。为了解决这个问题,请尝试增加“容器”的尺寸,特别是“宽度”。另外,我不完全确定为什么你有两个标签,但只有一个文本区域 - 照顾解释,或提供更多的代码? – mre 2011-04-04 15:23:50

回答

1

使用带有FlowLayout的JPanel。

JPanel myPanel = new JPanel(); 

myPanel.add(searchText); 
myPanel.add(target); 

container.add(myPanel,FlowLayout.LEFT); 

注意,如果你想两个标签和两个文本区域显示在您需要的时尚,你应该创建两个面板。有关的FlowLayout更多信息:

Flow Layout

在任何情况下,你应该使用更先进的定位的编辑器。

+0

他已经在使用'FlowLayout',虽然对齐部分的答案可能会有用。 – mre 2011-04-04 15:32:21

+0

我完全不同意需要编辑进行高级职位。编辑没有提供魔术。如果你可以用编辑器做到这一点,那么你可以用手做得更好。 – jzd 2011-04-05 11:01:42

1

可以使用GridLayout这样的:

this.container = new JPanel(new GridLayout(1, 2));  

    this.searchText = new JLabel("Enter text to be searched: "); 

    this.charText = new JLabel("Enter a character: "); 

    this.target = new JTextArea(3,30); 

    container.add(searchText); 
    container.add(target);