有没有办法禁用JTextField而不会丢失它的边框?基本上我有几个文本字段,其中一些是启用的,一些是禁用的。然而,残疾人没有边界。无论启用还是禁用,我希望所有文本字段看起来都一样。有什么方法可以做到吗?
感谢您的回答
答案 0 :(得分:1)
在本程序中,您可以找到解决方案
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DressingUpComponents
{
JTextField disabled,
normal;
JLabel label;
public DressingUpComponents()
{
configureDisabledTextField();
normal = new JTextField("hello world");
configureLabel();
}
private void configureDisabledTextField()
{
disabled = new JTextField("hello world");
disabled.setEnabled(false);
Color bgColor = UIManager.getColor("TextField.background");
disabled.setBackground(bgColor);
Color fgColor = UIManager.getColor("TextField.foreground");
disabled.setDisabledTextColor(fgColor);
disabled.setBorder(BorderFactory.createEtchedBorder());
}
private void configureLabel()
{
label = new JLabel("hello world");
label.setBorder(BorderFactory.createEtchedBorder());
label.setOpaque(true); // required for background colors
label.setBackground(UIManager.getColor("TextField.background"));
label.setFont(UIManager.getFont("TextField.font"));
}
public static void main(String[] args)
{
DressingUpComponents dup = new DressingUpComponents();
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cp = f.getContentPane();
cp.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.weighty = 1.0; // allow vertical dispersion
gbc.gridwidth = GridBagConstraints.REMAINDER; // single column
cp.add(dup.disabled, gbc);
cp.add(dup.normal, gbc);
cp.add(dup.label, gbc);
f.setSize(200,200);
f.setLocation(200,200);
f.setVisible(true);
}
}
答案 1 :(得分:0)
你可以尝试JTextField text = new JTextField;
text.setVisible(false);
我不确定这会起作用,但尝试不会造成任何损失。