前言
这个也是Java实验课程的一个作业,和 Java实现简单的图形界面计算器 一起做的,因为以前没有做过GUI编程,所以做的非常简陋,还有很多BUG,但是感觉当个作业也够了。
程序功能和截图
这里的添加是直接添加到文件中,为什么不用数据库呢?因为我们老师根本就没教,所以也不能用.。
通过输入的名字在文件中查找是否有该用户,如果用,就显示到界面上。
大致的功能就是上面两个。
代码
一、文件读写工具
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
package Contacts;
import java.io.*;
/** * Created by Yifan Jia on 2018/6/10. */ public class FileRW { private static FileWriter fileWriter;
private static FileReader fileReader;
private static BufferedReader bf;
private static BufferedWriter bw;
private static File file = new File( "D:\\dest.txt" ); public static void fileWrite(String s) { try { fileWriter = new FileWriter(file, true ); bw = new BufferedWriter(fileWriter); bw.write(s); } catch (IOException e) { e.printStackTrace(); } finally { try { bw.close(); fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } } }
public static String fileRead(String dest) { try { fileReader = new FileReader(file); bf = new BufferedReader(fileReader); String ss; while ((ss = bf.readLine()) != null ) { String[] temp = ss.split( "," ); if (temp[ 0 ].equals(dest)) { return ss; } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { bf.close(); fileReader.close(); } catch (IOException e) { e.printStackTrace(); } } return null ; } } |
二、界面程序
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 |
package Contacts;
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent;
//定义自已的MyPanel,用于实现画图 class MyPanelone extends JPanel { private String ss; private int x; private int y; private int size;
public MyPanelone(String ss, int x, int y, int size) { this .ss = ss; this .x = x; this .y = y; this .size = size; }
//覆盖JPanel的paint方法 @Override public void paint(Graphics g) { super .paint(g); g.setColor(Color.BLACK); g.setFont( new Font( "宋体" , Font.BOLD, size)); g.drawString(ss, x, y); } }
public class MyContacts extends JFrame{ private MyPanelone myPaneone; private JPanel[] jPanels = new JPanel[ 7 ]; private JButton[] jButtons = new JButton[ 4 ]; private JTextField[] jTextFields = new JTextField[ 6 ]; private JLabel[] jLabels = new JLabel[ 6 ]; private String[] texts = new String[ 6 ];
private class MyActionListener implements ActionListener {
@Override public void actionPerformed(ActionEvent e) { boolean flag = true ; StringBuilder s = new StringBuilder(); String actionCommand = e.getActionCommand(); if (actionCommand == "添加" ) { for ( int i = 0 ; i < 6 ; i++) { texts[i] = new String(); texts[i] = jTextFields[i].getText(); //System.out.println(texts[i]); if (texts[i].equals( "" ) || texts[i] == null ) { flag = false ; break ; } if (i == 0 ) { s.append(texts[i]); } else { s.append( "," ).append(texts[i]); } } if (flag) { s.append( "\n" ); //将文本域中的内容写成一个字符串 String ss = s.toString(); //将字符串写入文件 FileRW.fileWrite(ss); for ( int i= 0 ;i< 6 ;i++) { jTextFields[i].setText( "" ); } //System.out.println(ss); JFrame jFrame = new JFrame(); jFrame.setBounds( 500 , 300 , 300 , 300 ); MyPanelone myPanelone = new MyPanelone( "添加成功" , 100 , 100 , 20 ); jFrame.add(myPanelone); jFrame.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { e.getWindow().dispose(); } }); jFrame.setVisible( true ); } else { JFrame jFrame = new JFrame(); jFrame.setBounds( 500 , 300 , 300 , 300 ); MyPanelone myPanelone = new MyPanelone( "请把所有内容都填写完整" , 60 , 100 , 15 ); jFrame.add(myPanelone); jFrame.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { e.getWindow().dispose(); } }); jFrame.setVisible( true ); }
} else if (actionCommand == "清空" ) { for ( int i= 0 ;i< 6 ;i++) { jTextFields[i].setText( "" ); } } else if (actionCommand == "退出" ) { System.exit( 0 ); } else if (actionCommand == "查找" ) { JFrame frame = new JFrame( "输入" );
JPanel jPanel = new JPanel(); JPanel jPanel1 = new JPanel(); JLabel jLabel = new JLabel( "输入查找人的名字" ); JButton jButton = new JButton( "确定" ); JTextField jTextField = new JTextField( 30 ); jPanel.add(jLabel); jPanel.add(jTextField); jButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String actionCommand1 = e.getActionCommand(); String dest = jTextField.getText(); String findresult = FileRW.fileRead(dest); if (findresult == null ) { for ( int i= 0 ;i< 6 ;i++) { jTextFields[i].setText( "" ); } JFrame jFrame = new JFrame(); jFrame.setBounds( 500 , 300 , 300 , 300 ); MyPanelone myPanelone = new MyPanelone( "未找到该用户" , 100 , 100 , 20 ); jFrame.add(myPanelone); jFrame.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { e.getWindow().dispose(); } }); jFrame.setVisible( true ); frame.dispose(); } else { String[] tempdest = findresult.split( "," ); for ( int i= 0 ;i< 6 ;i++) { jTextFields[i].setText(tempdest[i]); } frame.dispose(); }
} }); jPanel1.add(jButton); frame.add(jPanel, BorderLayout.CENTER); frame.add(jPanel1, BorderLayout.SOUTH); frame.setBounds( 500 , 300 , 400 , 300 ); frame.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { e.getWindow().dispose(); } }); frame.setVisible( true ); } } }
MyContacts() { myPaneone = new MyPanelone( "communication" , 250 , 60 , 60 ); //myPaneone.setSize(1000, 150); this .add(myPaneone); for ( int i= 0 ;i< 7 ;i++) { jPanels[i] = new JPanel(); }
jLabels[ 0 ] = new JLabel( "姓名" ); jLabels[ 1 ] = new JLabel( "邮政编码" ); jLabels[ 2 ] = new JLabel( "通信地址" ); jLabels[ 3 ] = new JLabel( "电话" ); jLabels[ 4 ] = new JLabel( "手机" ); jLabels[ 5 ] = new JLabel( "电子邮件" );
jButtons[ 0 ] = new JButton( "添加" ); jButtons[ 1 ] = new JButton( "查找" ); jButtons[ 2 ] = new JButton( "清空" ); jButtons[ 3 ] = new JButton( "退出" );
for ( int i= 0 ;i< 6 ;i++) { jTextFields[i] = new JTextField( 50 ); }
//设置布局管理 this .setLayout( new GridLayout( 8 , 1 ));
//加入各个组件 for ( int i= 0 ;i< 6 ;i++) { jPanels[i].add(jLabels[i]); jPanels[i].add(jTextFields[i]); this .add(jPanels[i]); } for ( int i= 0 ;i< 4 ;i++) { jButtons[i].addActionListener( new MyActionListener()); jPanels[ 6 ].add(jButtons[i]); } this .add(jPanels[ 6 ]); }
public static void main(String[] args) { JFrame f = new MyContacts(); f.setTitle(f.getClass().getSimpleName()); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setBounds( 400 , 200 , 1000 , 600 ); f.setVisible( true ); } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
原文链接:https://blog.csdn.net/q982151756/article/details/80647801