单选按钮的概念是:在一组单选按钮选项中,只能选中其中一项,这和复选框是不同的。意思就是必须有一个是为选中状态的,你要是想设置成都可以不选中,我建议你使用checkbox复选框来实现
成都创新互联为客户提供专业的成都网站设计、成都网站制作、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、手机网站开发等网站方面业务。
监听按钮,当按钮被点击时,就退出。代码如下:
jb_button.addMouseListener(new MouseAdapter() { // 对jb_button按钮添加监听事件
@Override
public void mouseClicked(MouseEvent e) { // 当鼠标点击时
System.exit(0); // 退出
}
});
public class Demo extends JFrame
{
JButton jb; //一个按钮
public static void main(String []args){
new Demo();
}
public Demo()
{
this.setLayout(new FlowLayout());
jb=new JButton("按扭");
this.add(jb);
this.setSize(400,300);
this.setVisible(true);
this.setLocation(500, 200);
}
}
首先你还是弄一个新的panel 来将“确定”“取消”两个按钮重新排布好吧,由于只有两个按钮这么简单我下面的程序用GirdLayout了,
例如:JPanel panel = new JPanel();
panel.setLayout(new GridLayout(1,2));
panel.add(bw);
panel.add(bc);
然后再在你的Frame jp 里面加入这个panel,就可以了。按照你的设定就是用BorderLayout把它加到中间去吧? 北面的就是你原来做好的那些部分..(虽然不是很优化,不过先不管了...)
例如:fr.getContentPane().add("North",jp);
fr.getContentPane().add("Center",panel);
整条程序就是:(注意我改了包的名字和类的名字,你要改回来, 这里的参数也改了一下,符合我自己的审美观 : fr.setSize(450, 200); )
package src;
/**
* @author Raven Denesis
* @version 1.0
*/
import java.awt.*;
import java.awt.event.*;
import java.util.Map;
import javax.swing.*;
public class Jpassword {
private JFrame fr = new JFrame("登陆界面");
private JTextField user = new JTextField(20);
private JPasswordField pwd = new JPasswordField(10);
private JTextArea ta = new JTextArea(5,10);
private JButton bw = new JButton("确定");
private JButton bc = new JButton("取消");
Font ft = new Font ("serf",Font.BOLD,28);
JPanel jp = new JPanel (new GridLayout(2,3,10,10));
public static void main(String[] args){
Jpassword than = new Jpassword();
than.go();
}
void go(){
fr.getContentPane().setLayout(new BorderLayout(0,10));
JLabel u1 =new JLabel("用户名: ",JLabel.LEFT);
jp.add(u1);
jp.add(user);
JLabel pl = new JLabel("用户密码: ",JLabel.LEFT);
jp.add(pl);
jp.add(pwd);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(1,2));
panel.add(bw);
panel.add(bc);
fr.getContentPane().add("North",jp);
fr.getContentPane().add("Center",panel);
u1.setFont(ft);
pl.setFont(ft);
user.setFont(ft);
pwd.setFont(ft);
//user.addActionListener(new ActionListener());
//pwd.addActionListener(new TextHandler());
fr.setSize(450, 250);
fr.setVisible(true);
fr.setLocation(200, 200);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
abstract class TextHandler implements ActionListener
{
int sel;
TextHandler(int sel)
{
this.sel = sel;
}
}
public void actionPerformed(ActionEvent e)
{
String uname,upass;
uname = user.getText();
upass = new String(pwd.getPassword());
ta.setText("用户名: "+"\n"+"密码: "+upass);
}
}
运行结果:
这样的排版你觉得还可以吧?
还有你的按钮bw和bc还没有加到.addActionListener(new ActionListener()); 里,这样的话按钮就算按下去都没反应...不过你稍后应该会加的了吧,我想就不用另行说了....