2013-11-28 7 views
-1

Новое в использовании 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); 
+3

1) [Что вы пробовали?] (Http://www.whathaveyoutried.com/) Я имею в виду * кроме того, спрашивая нас. 2) Чтобы получить более эффективную помощь, опубликуйте [SSCCE] (http://sscce.org/). 3) Java GUI, возможно, придется работать на нескольких платформах, на разных разрешениях экрана и использовании разных PLAF. Таким образом, они не способствуют точному размещению компонентов. Чтобы организовать компоненты для надежного графического интерфейса, вместо этого используйте менеджеров компоновки или [их комбинаций] (http://stackoverflow.com/a/5630271/418556), а также макеты и границы для [пробела] (http: //stackoverflow.com/q/17874717/418556). –

+0

Вы не должны вычислять totalPay, пока не получите в слушателе действий кнопки расчета. –

ответ

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, использовать Силу, Люк!

3
  1. имя переменной в Java не должно начинаться с заглавной буквы.
  2. Всегда оставить SSCCE: вместо фрагментов коды, которые на самом деле не отражает то, что вы делаете
  3. Заявленными все вашей с использованием компоненты в классе контексте, а не внутри функции, как заявленная экземпляр компоненты будет работать локально, и мы можем столкнуться с проблемой работы с анонимным классом и его функцией. Так объявите lblNewLabel_2 в контексте вашего класса
  4. Поскольку все из RadioButton в вашем контексте выполняет ту же задачу: обновляя текстовое содержимое метки некоторой определенной переменной, попробуйте использовать один экземпляр ActionLisnter. Для этого внесите его в класс MyActionLister implements ActionListener и реализуйте функцию actionPerformed. Больше обсуждения о смысле дизайна не соответствует теме, так как ваш вопрос в настоящее время остается.

Однако установить text на события действия каждой кнопки радио, вам нужно будет сделать что-то вроде следующего:

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

Вау, у вас столько же нот для этого вопроса :) – SeniorJD

+0

aaaaaaaaah, я пропустил больше очков. 'SetBound'. Я дам вам +1 за это :) – Sage

+0

ваш ответ информативен, возьмите свои очки, приятель;) – SeniorJD

Смежные вопросы