【发布时间】:2009-02-11 18:56:41
【问题描述】:
我正在设计一个非常简单的 GUI,但没有任何运气。基本上,外部布局有两列,它们是一个拆分窗格(这是针对我正在编写的 IRC 客户端)。左侧是服务器/频道/用户树,右侧是聊天窗格。现在我将其分解,因此右侧顶部是输出窗格,底部是单行输入框。
这是创建整体GUI的代码(这只是一个sn-p)
ChatModel cm = new ChatModel();
ChatView cv = new ChatView(cm);
treeViewChatSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, serverTreeView, cv);
treeViewChatSplitPane.setSize(500, 500);
treeViewChatSplitPane.setBorder(null);
treeViewChatSplitPane.setDividerSize(3);
this.getContentPane().add(treeViewChatSplitPane);
this.setSize(500, 500);
ChatView 构造函数中有这个(它扩展了 java.awt.Container)
this.model = model;
this.setLayout(new BorderLayout());
mainTextArea = new JTextArea();
mainTextArea.setLineWrap(true);
mainTextArea.setBackground(new Color(255, 255, 255));
inputField = new JTextField();
this.add(mainTextArea, BorderLayout.CENTER);
this.add(inputField, BorderLayout.PAGE_END);
现在它最初看起来不错,但我遇到的问题是您可以将分离器向左移动,但不能向右移动。事实上,如果你把它向左移动,你就不能再向右移动它了。我之前确实有它工作过,但实现不是很好,我已经忘记了我做了什么。
有什么想法吗?我不明白为什么这不起作用。
【问题讨论】:
-
为什么要在方法调用前面加上“this”?
-
@Steve:这是一种常见的做法,有好处也有坏处;有一个关于它的问题。
-
@Steve:我通常这样做是为了找出我在本地范围内可用的属性/方法。告诉我我在处理什么也很明确。我通常在发布代码中删除它们。