我正在使用netbeans设计一个Jframe。我的问题很少。
有人可以建议我是否可以通过一些例子来实现它们。
经过一些有用的建议后尝试了这个
private void englishRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
JLabel userlabel;
if (englishRadioButton.isSelected())
{
userlabel = new JLabel("Inches");
userlabel.setBounds(311, 59, 64, 36);
//userlabel.setLocation(307,55);
//userlabel.setSize(70,40);
userlabel.setForeground(Color.green);
userlabel.setText("Inches");
userlabel.setVisible(true);
System.out.println(englishRadioButton.getBounds());
inchesTextField.setVisible(true);
}
}
只有当我点击英文单选按钮时,文本字段才可见,同时我需要获得一个标签,但不会显示上面的代码。我能知道我哪里出错吗?
请参阅随附的屏幕截图
单击英文按钮时,我需要第二个文本字段下面的标签为英寸,我在显示公制时禁用文本字段。我能够实现后者而不是前者
谢谢!
答案 0 :(得分:4)
setEnabled(...)
和setVisible(...)
方法,其中任何一种方法都可以在程序运行期间随时调用。前者可帮助您激活/停用组件,后者有助于使组件可见/不可见。如果您想交换完整的"视图",请使用CardLayout。关于:
有人可以建议我是否可以通过一些例子来实现它们。
请首先,因为我坚信在这里努力的责任应该是你的,提问者,因为你是提出问题的人,而且是通过编码学习最多的人越多越好。让我们看看你的尝试,我们可以帮助你。否则最好的例子可以在Swing教程中找到。
有关链接,请查看此处:Swing Tag Info。
修改强>
你问:
我尝试了上面发布的代码,有条件地禁用文本字段效果很好,但获取标签并不起作用。你能就此提出建议吗?
我没有看到您将JLabel添加到任何组件。如果要在事件上创建组件,则必须将其添加到其祖先层次结构最终到达可见顶级组件(如JFrame)的组件中。然后在向容器(例如JFrame)添加组件之后,必须在容器上调用revalidate()
以使其布局管理器重新布局其组件,然后repaint()
重新绘制任何"脏"像素。
我再次重申,你最好不要使用空布局和绝对定位,而是使用布局管理器和相对定位。如果你想要一个带有和没有可见文本的标签,通常最好在创建GUI时向GUI添加一个空JLabel,只需在需要时设置其文本,只要标签位于允许其文本的某个地方即可。缩小和扩大。
此外,关于您当前的问题,您可能希望展示您正在尝试实现的目标以及您获得的内容。或者,如果您尚未在此处发布图片,请发布指向您已创建的图片或图片的链接,然后我们会为您发布。