I82*_*uch 8 java user-interface swing miglayout
我正在使用miglayout创建一个表单,其中有JTextFields(简短的输入答案)以及JTextAreas(更长的答案).问题是双重的.
从右/左更改为右/填充后: alt文本http://grab.by/3RMk 您可以看到边界排列,但仍然存在差距.我尝试设置novisualpadding但这并没有解决它.
源代码:
package test2;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import net.miginfocom.swing.MigLayout;
public class Test extends JPanel {
private static final int NUM_CHARACTERS_WIDTH = 20;
private static final int NUM_ROWS = 5;
public Test() {
setLayout(new MigLayout(
"wrap 2",
// Align text labels on the so their right edge meets left edge of the text fields
"[right][left]"
));
add(new JLabel("Text field:"));
add(new JTextField(NUM_CHARACTERS_WIDTH));
add(new JLabel("No scrollpane text area:"));
add(new JTextArea(NUM_ROWS, NUM_CHARACTERS_WIDTH));
add(new JLabel("Scrollpane text area:"));
add(new JScrollPane(new JTextArea(NUM_ROWS, NUM_CHARACTERS_WIDTH)));
add(new JLabel("Text field:"));
add(new JTextField(NUM_CHARACTERS_WIDTH));
}
public static void main(String[] args) {
JFrame frame = new JFrame("");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new Test();
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
}
在保持视觉和谐的同时,混合和匹配jtextfield和jtextareas的首选方法是什么?我现在注意到,当焦点位于文本区域时,文本字段周围有蓝色高光,而不是文本区域......视觉不连续的另一个来源.
小智 7
我知道这个问题很老了,但要获得一个TextArea匹配的边框TextField:
(myTextArea).setBorder(new TextField().getBorder());
Run Code Online (Sandbox Code Playgroud)
这应该给你一个边界,TextArea就像你周围的那个TextField.
答案是 MiG Layout 人员正在为他们的下一个版本进行修复。
你好,
苹果有个坏习惯,就是默认补偿而不让开发者决定。在这种情况下,他们添加了边框,使其在视觉上更像 OS X。这应该是布局管理器的选择......
MigLayout 可以补偿这样的视觉边界,但它仅适用于 Windows XP 中的 JTabbedPane。但我不确定它在 OS X 中是否可以 100% 好。我得检查一下。我们不希望文本字段超出边界。
我已将其添加到下一版本的待办事项列表中。