如何在Swing中的复选框的itemStatechanged事件中显示文本字段?

我正在尝试使用复选框和文本字段创建框架.我希望仅在选中复选框时才显示文本字段.因此,当我初始化组件时,我将textfield.setvisible设置为false,并且为复选框添加了addItemListener并调用了itemStateChanged事件,并且选中了复选框,我将setVisible方法设置为true.

我的SSCCE看起来像:

package ui;

public class Evaluator extends javax.swing.JFrame {

public Evaluator() {

initComponents();

}

private void initComponents() {

jCheckBox1 = new javax.swing.JCheckBox();

jTextField1 = new javax.swing.JTextField();

jTextField1.setVisible(false);

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setPreferredSize(new java.awt.Dimension(800, 800));

jCheckBox1.setFont(new java.awt.Font("Tahoma", 0, 14));

jCheckBox1.setText("Properties");

jCheckBox1.addItemListener(new java.awt.event.ItemListener() {

public void itemStateChanged(java.awt.event.ItemEvent evt) {

jCheckBox1ItemStateChanged(evt);

}

});

jTextField1.setFont(new java.awt.Font("Tahoma", 0, 14));

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addComponent(jCheckBox1)

.addGap(41, 41, 41)

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(155, Short.MAX_VALUE))

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()

.addContainerGap(229, Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jCheckBox1)

.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(34, 34, 34))

);

pack();

}

private void jCheckBox1ItemStateChanged(java.awt.event.ItemEvent evt) {

// TODO add your handling code here:

if(evt.getStateChange()== java.awt.event.ItemEvent.SELECTED){

jTextField1.setVisible(true);

}

}

public static void main(String args[]) {

try {

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(Evaluator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Evaluator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Evaluator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Evaluator.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

}

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Evaluator().setVisible(true);

}

});

}

private javax.swing.JCheckBox jCheckBox1;

private javax.swing.JTextField jTextField1;

}

解决方法:

基本上,您需要使框架(或父容器)无效以强制它重新布局

private void jCheckBox2ItemStateChanged(java.awt.event.ItemEvent evt) {

jTextField1.setVisible(jCheckBox2.isSelected());

invalidate();

validate();

}

更新

我还建议您避免将整个UI添加到顶级容器中,而是使用JPanel作为基础组件并围绕它们构建UI.准备好后,只需将基本面板添加到您需要的顶级容器中.

标签:jcheckbox,java,swing,jtextfield,visibility

来源: https://codeday.me/bug/20190723/1509445.html

java复选框如何显示在文本雨_java – 在复选框的itemStatechanged事件上显示文本字段...相关推荐

  1. python tkinter text改变文本字体颜色_Python3 tkinter基础 Button text,fg 按钮上显示的文字 文字的颜色...

    ? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.11 type setting : Markdo ...

  2. java商城购物车商品sku变化_在Woocommerce 3中的购物车和结帐页面上显示SKU

    你需要做一些模板覆盖 . Cart 如果 my_theme/woocommerce/cart/cart.php 尚未存在,请将 plugins/woocommerce/templates/cart/c ...

  3. jsp在html文本输入数字只能为正数,如何控制JSP页面上的文本框只能输入数字

    1.只能输入数字和英文的: onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace ...

  4. html字体在页面中间显示不出来的,通过css的@font-face属性,在网页上显示用户电脑没有的字体...

    在网页中,我们可以用CSS的font-family属性来定义字体,然而定义的字体在用户的电脑上能否正确呈现则要看用户的电脑是否安装了该字体.我们经常能看到国外的一些个人网站使用了非常漂亮的字体,而这些 ...

  5. android edittext drawable,android – 在事件上显示复合drawable到EditText

    我解决了它--创建了以下代码 public class CustomEditText extends EditText { private Drawable dRight; private Rect ...

  6. 在六位共阴数码管上最左边一位上显示稳定的数字

    解析 通过P0口对数码管进行位选和段选,由于只使用了一个IO口,为避免数据混乱,通过两个锁存器进行位选和段选的控制: while(1)循环中,先打开了位选端,并通过P0口发送数据0XFE,此时发送的数 ...

  7. Windows任务栏上显示网页的超酷玩法!!!!!!!!!!!

    Windows任务栏上显示网页的超酷玩法!!!!!!!!!!! 作者:lee1892 -----------整理者:lnboy 众所周知,windows的任务栏可以显示一个被称为QuickLaunch ...

  8. 天地图专题四:在天地图上显示运行轨迹

    上一文章我们讲了如何根据标注点确定初始化地图时的缩放级别和中心点. 是很基本的需求. 既然是地图,常常会有显示运行轨迹的需求. 本质上就是把一些点数据在地图上用线连接起来. 实现起来也是比较简单的. ...

  9. jsp 图片上传到oracle,jsp上传图片到数据库(oracle),并能在页面上显示解决办法

    jsp上传图片到数据库(oracle),并能在页面上显示解决办法 jsp上传图片到数据库(oracle),并能在页面上显示解决办法 日期:2014-05-18 浏览次数:20341 次 jsp上传图片 ...

最新文章

  1. ASP.NET MVC3细嚼慢咽---(2)模板页
  2. java托盘图标变白在linux,为什么用java实现windows系统托盘图标总是不显示出来
  3. Linux 访问文件的acl信息,linux文件权限管理与ACL访问控制列表
  4. python无法调用安装的包_如何使用python命令和安装包进行安装Django框架
  5. 微信扫码登录网页实现原理
  6. 计算机科学与技术的主要研究方向,计算机科学与技术学科方向与特色
  7. java分页计算当前页_java分页计算
  8. 【CRM】开源CRM
  9. 对中文GB2312编码和解码
  10. 给hexo主题添加背景及更改字体颜色(next的Mist主题)
  11. 安装compiz-fusion
  12. 网站备案 服务器不在一个地方,域名和服务器不在一个 如何备案
  13. 华为的提倡大家学雷锋,绝不让雷锋吃亏
  14. 计算机毕业设计Java超市货品进销存系统后台(源码+系统+mysql数据库+lw文档)
  15. Git、Github、Gitee、GitLab学习笔记
  16. openstack(Queen)搭建
  17. 虚拟机 服务器 断电,esxi服务器断电后虚拟机无法开启(如何使用esxi中的虚拟机)...
  18. [转载]将Excel中的图片URL地址转成图片文件
  19. [附源码]java毕业设计电子病历信息管理系统
  20. iOS 添加快捷代码的方法

热门文章

  1. 400G时代即将来袭,新型光纤或为最佳拍档
  2. webpack----entry
  3. 定时备份为Sharepoint做网站备份,并删除指定日期的备份
  4. 会写helloworld,不等于入门
  5. 做企业需要一点逆向思维
  6. “稿费+股权”能打造亿万富翁作家?
  7. source insight 配置
  8. DataGridView使用技巧一:获取或设置当前单元格的内容
  9. 《网络攻防》 第六周学习总结
  10. 关于.netMVC 出现@ViewBag 出现错误(波浪红线)的解决方法