[英]Disabled JTextField's border
有没有办法禁用JTextField而不失去其边界? 基本上我有几个文本字段,其中一些是启用的,有些是禁用的。 但是,残疾人没有边界。 我希望所有文本字段无论启用还是禁用都看起来相同。 有什么办法吗?
谢谢你的回答
在此程序中,您可以找到解决方案
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);
}
}
你可以尝试JTextField text = new JTextField; text.setVisible(false);
JTextField text = new JTextField; text.setVisible(false);
我不确定这是否可行,但尝试不会造成任何损失。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.