单击按钮时如何显示文本?

时间:2013-11-28 14:36:20

标签: java swing

使用jswing的新功能只是想知道如何制作一个有一些计算的按钮来显示标签上的文字?像3个按钮,它们包含3个不同的值,然后有一个Calculate按钮,将结果显示给标签?

JRadioButton rdbtnNewRadioButton = new JRadioButton("Single");
    rdbtnNewRadioButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            TotalPay = TotalPay + Single;
        }

JRadioButton rdbtnNewRadioButton_1 = new JRadioButton("Two or more");
    rdbtnNewRadioButton_1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            TotalPay = TotalPay + two;
        }
    });

JRadioButton rdbtnWithPet = new JRadioButton("With Pet");
    rdbtnWithPet.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            TotalPay = TotalPay + Pet;
        }
    });

 JButton btnNewButton = new JButton("Calculate");
    btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        //What code to insert to display label result?  
        }
    });

 JLabel lblNewLabel_2 = new JLabel(""); //result of the total must display here?
    lblNewLabel_2.setBounds(232, 47, 110, 69);
    frmPaulasPortraits.getContentPane().add(lblNewLabel_2);

2 个答案:

答案 0 :(得分:3)

  1. Java中的变量名称不应以大写字母开头。
  2. 始终发布SSCCE:而不是代码段,这并不能真正反映您正在做的事情
  3. 在类上下文中声明了所有使用组件而不是函数内部,因为声明的组件实例将是函数本地的,我们可能在使用匿名类及其功能时遇到麻烦。因此,向您的班级上下文声明lblNewLabel_2
  4. 由于您的上下文中的所有RadioButton执行相同的任务:使用某个特定变量更新标签的文本内容尝试使用ActionLisnter的一个实例。为此,请将其实现到某个类MyActionLister implements ActionListener并实现actionPerformed函数。关于设计意义的更多讨论是关于主题的,因为你的问题目前仍然存在。
  5. 但是,要在每个单选按钮的操作事件上设置text,您需要执行以下操作:

          public void actionPerformed(ActionEvent e) {
                TotalPay = TotalPay + Pet;
                lblNewLabel_2.setText(""+TotalPay);
            }
    

答案 1 :(得分:3)

  

要显示哪些代码来显示标签结果?

1。插入此内容:

lblNewLabel_2.setText(String.valueOf(TotalPay));

2。lblNewLabel_2之前初始化btnNewButton并将其设为final

final JLabel lblNewLabel_2 = new JLabel("");

3。请勿直接对setBounds使用JLabel方法。 LayoutManager会为您做到这一点

4。 Swing有很多教程,使用Force,Luke!