关于设计JFrame的建议

时间:2014-03-14 01:21:24

标签: java swing

我正在使用netbeans设计一个Jframe。我的问题很少。

  1. 我们可以为所需位置的字段创建标签(例如,我们有一个名为height的字段,我需要在其下方显示一个标签,指示高度以cm为单位)吗?
  2. 我们可以根据条件禁用字段吗?(通过禁用我的意思是它不应该显示在我的框架中)
  3. 有人可以建议我是否可以通过一些例子来实现它们。

    经过一些有用的建议后尝试了这个

     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);
                    }
        }        
    

    只有当我点击英文单选按钮时,文本字段才可见,同时我需要获得一个标签,但不会显示上面的代码。我能知道我哪里出错吗?

    请参阅随附的屏幕截图When English button is clicked, I need a label beneath the second textfield as inches When Metric button is clicked,I am disabling the above text field

    单击英文按钮时,我需要第二个文本字段下面的标签为英寸,我在显示公制时禁用文本字段。我能够实现后者而不是前者

    谢谢!

1 个答案:

答案 0 :(得分:4)

  1. 是的,使用布局管理器可以轻松实现组件的相对放置。
  2. 是的,所有组件都有setEnabled(...)setVisible(...)方法,其中任何一种方法都可以在程序运行期间随时调用。前者可帮助您激活/停用组件,后者有助于使组件可见/不可见。如果您想交换完整的"视图",请使用CardLayout。
  3. 关于:

      

    有人可以建议我是否可以通过一些例子来实现它们。

    请首先,因为我坚信在这里努力的责任应该是你的,提问者,因为你是提出问题的人,而且是通过编码学习最多的人越多越好。让我们看看你的尝试,我们可以帮助你。否则最好的例子可以在Swing教程中找到。

    有关链接,请查看此处:Swing Tag Info


    修改
    你问:

      

    我尝试了上面发布的代码,有条件地禁用文本字段效果很好,但获取标签并不起作用。你能就此提出建议吗?

    我没有看到您将JLabel添加到任何组件。如果要在事件上创建组件,则必须将其添加到其祖先层次结构最终到达可见顶级组件(如JFrame)的组件中。然后在向容器(例如JFrame)添加组件之后,必须在容器上调用revalidate()以使其布局管理器重新布局其组件,然后repaint()重新绘制任何"脏"像素。

    我再次重申,你最好不要使用空布局和绝对定位,而是使用布局管理器和相对定位。如果你想要一个带有和没有可见文本的标签,通常最好在创建GUI时向GUI添加一个空JLabel,只需在需要时设置其文本,只要标签位于允许其文本的某个地方即可。缩小和扩大。

    此外,关于您当前的问题,您可能希望展示您正在尝试实现的目标以及您获得的内容。或者,如果您尚未在此处发布图片,请发布指向您已创建的图片或图片的链接,然后我们会为您发布。