繁体   English   中英

禁用JTextField的边框

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM