组件及事件处理和输入流与输出流应用

发布于:2022-10-30 ⋅ 阅读:(226) ⋅ 点赞:(0)

今天是搬砖的第一天,从八点写到九点五十,虽然有点慢,但是还是想着每天进步一点点!喜欢蜗牛,喜欢蜗牛的慢,一步一个脚印,今天写的代码和大家分享一下,唯一不足就是没有注释。下次改正!

package Test_20;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.FileWriter;

import java.io.IOException;

import javax.swing.ButtonGroup;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JRadioButton;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

/**分析:

 * 1.大致的界面

 *  1.head ,在label中添加imageicon获取当前的运行时类中的getresourcce,把图片添加进去

 *  2.姓名,2个组件在一个面板中,jpanel,里面有jlabel,jtextfile

 *  3.性别,三个组件在一个面板中,jlabel,两个jradiobutton

 *  4.爱好,5个组件在一个面板中,jlabel,4个jcheckbox

 *  5.列表框,有一个jtextarea,需要jscrollpane

 *  6.4个执行按钮,4个jbutton

 * 2.把这个界面动起来

 * @author Administrator

 *

 */

class NameBox extends JPanel{//姓名,2个组件在一个面板中,jpanel,里面有jlabel,jtextfile

JTextField jtf;

NameBox(){

add(new JLabel("姓名"));

jtf=new JTextField(5);

add(jtf);

}

}

class SexBox extends JPanel{//性别,三个组件在一个面板中,jlabel,两个jradiobutton

JRadioButton jrb1,jrb2;

SexBox(){

add(new JLabel("性别"));

jrb1=new JRadioButton("男");

jrb2=new JRadioButton("女");

//因为性别要么男要么女,因此是互斥,ButtonGroup

ButtonGroup bg=new ButtonGroup();

bg.add(jrb1);

bg.add(jrb2);

//接下来把两个按钮加进去

add(jrb1);

add(jrb2);

}

}

class LikeBox extends JPanel{//爱好,5个组件在一个面板中,jlabel,4个jcheckbox

JCheckBox jcb1,jcb2,jcb3,jcb4;

LikeBox(){

add(new JLabel("爱好"));

jcb1=new JCheckBox("运动");

jcb2=new JCheckBox("电脑");

jcb3=new JCheckBox("音乐");

jcb4=new JCheckBox("读书");

add(jcb1);

add(jcb2);

add(jcb3);

add(jcb4);

}

}

class ExeBox extends JPanel{//4个执行按钮,4个jbutton

JButton jb1,jb2,jb3,jb4;

ExeBox(){

jb1=new JButton("list");

jb2=new JButton("save");

jb3=new JButton("exit");

jb4=new JButton("look");

add(jb1);

add(jb2);

add(jb3);

add(jb4);

}

}

public class LoginDemo extends JFrame implements ActionListener{

JLabel head;

NameBox name;

SexBox sex;

LikeBox like;

JTextArea list;

ExeBox exe;

LoginDemo(){

setTitle("调查表");

setBounds(100, 200, 400, 230);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setLayout(new FlowLayout());

setVisible(true);

init();

}

public void init() {

// TODO Auto-generated method stub

head=new JLabel(new ImageIcon(this.getClass().getResource("head.jpg")));//Class<?> getClass() :返回此 Object 的运行时类。  URL getResource(String name) :查找带有给定名称的资源。

add(head);

name=new NameBox();

add(name);

sex=new SexBox();

add(sex);

like=new LikeBox();

add(like);

list=new JTextArea(5,10);

add(list);

add(new JScrollPane(list));

exe=new ExeBox();

add(exe);

exe.jb2.setEnabled(false);

exe.jb1.addActionListener(this);

exe.jb2.addActionListener(this);

exe.jb3.addActionListener(this);

exe.jb4.addActionListener(this);

}

public static void main(String[] args) {

new LoginDemo();

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

Object o=e.getSource();

if(o==exe.jb1){

String str;

str="";

str+="姓名: "+name.jtf.getText()+"\r\n";

str+="性别: ";

if(sex.jrb1.isSelected()){

str+=sex.jrb1.getText()+"\r\n";

}

if(sex.jrb2.isSelected()){

str+=sex.jrb2.getText()+"\r\n";

}

str+="爱好: ";

int flag=0;

if(like.jcb1.isSelected()){

str+=like.jcb1.getText()+" ";

flag=1;

}

if(like.jcb2.isSelected()){

str+=like.jcb2.getText()+" ";

flag=1;

}

if(like.jcb3.isSelected()){

str+=like.jcb3.getText()+" ";

flag=1;

}

if(like.jcb4.isSelected()){

str+=like.jcb4.getText();

flag=1;

}

if(flag==0){

str+="无";

}

list.append(str+"\r\n");

exe.jb2.setEnabled(true);

}else if(o==exe.jb2){

FileWriter fw=null;

try {

fw=new FileWriter("d:/aaa/ccc/student.txt",true);

fw.write(list.getText()+"\r\n");

if(fw!=null){

fw.flush();

fw.close();

}

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}else if(o==exe.jb3){

System.exit(0);

}else{

}

}

}


 


 




                                                                                                                                                                                                                                                                                                ----2022-10-31
                                                                                                                                                                                                                                                                                                --------pm9:50                                                                                                                                                                                                                                                                                                   ------------蜗牛


网站公告

今日签到

点亮在社区的每一天
去签到