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