我有以下两个文本字段的窗口的Java代码:一个可编辑,另一个 - 不是。我想灰掉不可编辑的文本字段。我用setBackground()
功能,它似乎在Eclipse设计浏览器的工作:设置Swing的背景JTextField
然而,当我将它导出到jar
,生成的应用程序是这样的:
我我在MacOS 10.9.3
下使用Eclipse 4.4.1
。
我的代码:
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class TestFrame extends JFrame {
GridBagConstraints constraints;
JTextField text0;
public TestFrame() {
super("Test window");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
Container container = getContentPane();
container.setLayout(new GridBagLayout());
JTextField editableTextField, nonEditableTextField;
constraints = new GridBagConstraints();
editableTextField = new JTextField("Enter text here");
constraints.gridx=0;
constraints.gridy=0;
container.add(editableTextField, constraints);
constraints = new GridBagConstraints();
nonEditableTextField = new JTextField("See result here");
nonEditableTextField.setBackground(getForeground());
nonEditableTextField.setEditable(false);
constraints.gridx=0;
constraints.gridy=1;
container.add(nonEditableTextField, constraints);
pack();
}
public static void main(String args[]) {
new TestFrame();
}
}
因此,我有两个问题:
- 为什么行为是在观众和
jar
不同? - 如何灰掉
jar
中的文本字段?
怎么样setEnabled(false)? – Berger
@Berger'setEnabled()'有一点不同的行为。它使文本变灰,但不是背景,我希望背景上有标准颜色的文本,该颜色与应用程序框架背景的颜色相匹配,就像第一张图像一样。 – Roman
它可能与外观和感觉有关,或者UI默认已安装 – MadProgrammer