JRadioButton的ActionListener怎么没反应的呀

sinat_34532784 2017-01-25 11:59:32


我想让点击btn0(投第一人)按钮之后,按钮下面的文本框加1,最下面一行的文本框-1 可是点击之后没反应

package com.holiday.vote.date0125;


/**
* 3. 题目: 简单投票管理系统
设计要求:
设计一个投票管理系统界面,要求输入候选人名单后,点击确认按钮实现使用选择框代表候选人,计选择框的名字就是候选人的名字。
点击取消按钮候选人输入框为空,重新输入候选人名单。选中候选人的选择框时,表示给该候选人投一票。点击确定按钮时表示产生一张选票。
点击刷新按钮回到程序的初始界面重新设置候选人。
根据选择框的状态变化统计出候选人的最后得票数,并可按票选取多少点击排序按钮对候选人进行排序。(其中,最多从候选人中选取3人,如果一张选票选取多于3人,该票就作废票处理。
如果一个也没投票,就作弃权处理。程序能显示一共统计了多少选票,并能统计出废票和弃权票的票数。
学习要点:
本程序主要学习窗口的布局以及按钮事件的触发。
*/
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;

public class Vote extends JFrame implements ActionListener{

JPanel contentPane;
JTextField candidate0_tf;//候选人姓名文本框
JTextField candidate1_tf;
JTextField candidate2_tf;
JTextField candidate3_tf;
JTextField candidate4_tf;
JLabel input_label;//"请在每个文本框里输入候选人姓名"

public JRadioButton btn0,btn1,btn2,btn3,btn4;//投票按钮
ButtonGroup votebtnGroup;//将投票按钮添加到一组,实现单选

JTextField score0_tf,score1_tf,score2_tf,score3_tf,score4_tf;//最后得到的选票文本框
JLabel score_label; //提示总票数
JTextField leftover_tf;//剩余票数文本框
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Vote frame = new Vote();
frame.setSize(800,400);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});

}

/**
* Create the frame.
*/
public Vote() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(new BorderLayout(0, 0));

JPanel center_panel_vote = new JPanel(new GridLayout(5,1));//窗体中间的最大Panel
contentPane.add(center_panel_vote, BorderLayout.CENTER);

JPanel label_panel=new JPanel();//存放提示label的panel
input_label=new JLabel("请在每个文本框输入候选人姓名");
label_panel.add(input_label);//将提示框存放在panel中
center_panel_vote.add(label_panel);
JPanel cantf_panel=new JPanel();//存放所有候选人姓名文本框

candidate0_tf = new JTextField(); //第一个候选人姓名文本框
candidate0_tf.setColumns(7);
cantf_panel.add(candidate0_tf);

candidate1_tf = new JTextField();
candidate1_tf.setColumns(7);
cantf_panel.add(candidate1_tf);

candidate2_tf = new JTextField();
candidate2_tf.setColumns(7);
cantf_panel.add(candidate2_tf);

candidate3_tf = new JTextField();
candidate3_tf.setColumns(7);
cantf_panel.add(candidate3_tf);

candidate4_tf = new JTextField();
candidate4_tf.setColumns(7);
cantf_panel.add(candidate4_tf);

center_panel_vote.add(cantf_panel);//将候选人姓名文本框添加到最大的中间panel

JPanel votebtn_panel=new JPanel();//存放投票按钮
btn0=new JRadioButton();
btn0.setText("投第一人 ");
btn1=new JRadioButton();
btn1.setText("投第二人 ");
btn2=new JRadioButton();
btn2.setText("投第三人 ");
btn3=new JRadioButton();
btn3.setText("投第四人 ");
btn4=new JRadioButton();
btn4.setText("投第五人 ");
votebtnGroup=new ButtonGroup();
votebtnGroup.add(btn0);//将单选按钮添加到组里实现单选
votebtnGroup.add(btn1);
votebtnGroup.add(btn2);
votebtnGroup.add(btn3);
votebtnGroup.add(btn4);
votebtn_panel.add(btn0);//将按钮添加到btn_panel里
votebtn_panel.add(btn1);
votebtn_panel.add(btn2);
votebtn_panel.add(btn3);
votebtn_panel.add(btn4);
center_panel_vote.add(votebtn_panel);

JPanel scoretf_panel=new JPanel();//存放得分
score0_tf=new JTextField("0");
score1_tf=new JTextField("0");
score2_tf=new JTextField("0");
score3_tf=new JTextField("0");
score4_tf=new JTextField("0");
score0_tf.setColumns(7);
score1_tf.setColumns(7);
score2_tf.setColumns(7);
score3_tf.setColumns(7);
score4_tf.setColumns(7);
scoretf_panel.add(score0_tf);
scoretf_panel.add(score1_tf);
scoretf_panel.add(score2_tf);
scoretf_panel.add(score3_tf);
scoretf_panel.add(score4_tf);
center_panel_vote.add(scoretf_panel);

JPanel total_score=new JPanel();
score_label=new JLabel("总票数一共31票,还剩余票数:");
leftover_tf=new JTextField("31");
total_score.add(score_label);
total_score.add(leftover_tf);
center_panel_vote.add(total_score);
}

@Override
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource()==btn0) {
int leftscore=Integer.parseInt(leftover_tf.getText());
int score0=Integer.parseInt(score0_tf.getText());
score0_tf.setText((score0+1)+"");
leftover_tf.setText((leftscore-1)+"");
}
}
}



谢谢大家~~~
...全文
144 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧