- 老师又双叒叕留了大作业了,这次这个比较大,废了不少劲也掉了不少头发,虽然实现的方方有点笨,没有其他同学的漂亮,但还是写出来了,这个过程真是心酸有心累,还赶上期末,叫人抓狂,有两天晚上废了一晚上去找bug,还是没有找到,最后我舍友十分钟给找出来的.
- 当晚破防,我是伞兵,我是伞兵,我是伞兵。重要的事情说三遍。
- 如果要是想看实现的结果,直接将三个类CV一下到 idea 上就能编辑出来了,后边的就可以不看了,如果想看个个功能的实现方法和我遇到问题怎么解决的可以看后边,跳过代码,我看代码我也烦。
- 废话不在多说了,直接给大家分析一下代码和我其中遇到的问题和解决的方法。希望可以帮助到大家
- 我是先写的一个界面类布置好界面,在实现的各个功能,都写到界面类的构造方法中去了,最后直接在主类中new一个对象,显示出来。
- 第一个类JavaPhone 界面类,里边有一些实现功能都写一起了。
package Java;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
public class JavaPhone extends JFrame implements ActionListener, MouseListener, ListSelectionListener {
JButton jButton4;
JPanel jPanelLeft, jPanelRight, jPanelUp, jPanelDown, jPanel1, jPanel2;
JSplitPane jSplitPaneLR, jSplitPaneUD;
JTable jTable;
JScrollPane jScrollPane;
DefaultTableModel defaultTableModel;
JTextField jTextField1, jTextField2, jTextField3;
JRadioButton man, woman;
String sex;
JButton addButten, deleteButton, openButton, saveButton;
JComboBox<String> jComboBox, jComboBox2;
JCheckBox jCheckBox;
JComboBox<Integer> jComboBoxNum;
JList<String> jList;
private String string1 = "姓名", string2 = "电话号码", string3 = "关系";
DefaultListModel<String> defaultListModel;
ButtonGroup buttonGroup;
String[][] myfriends = new String[1024][4];
String[] surname = new String[1024];
String string_name = "Text.txt";
int count = 0;
int count1 = 0;
Founction founction;
public JavaPhone() {
super("My电话薄");
founction = new Founction();
this.setSize(900, 350);
this.setLocationRelativeTo(null);
this.setResizable(false);
jButton4 = new JButton("确定");
jPanelLeft = new JPanel();
jPanelLeft.setBackground(Color.WHITE);
jPanelLeft.setSize(200, 500);
jPanelRight = new JPanel();
jPanelRight.setBackground(Color.WHITE);
jSplitPaneLR = new JSplitPane(1, jPanelLeft, jPanelRight);
jSplitPaneLR.setDividerLocation(130);
this.getContentPane().add(jSplitPaneLR);
jPanelRight.setLayout(new BorderLayout());
jPanelUp = new JPanel();
jPanelUp.setBackground(Color.WHITE);
jPanelDown = new JPanel();
jPanelDown.setBackground(Color.WHITE);
jSplitPaneUD = new JSplitPane(0, jPanelUp, jPanelDown);
jSplitPaneUD.setDividerLocation(200);
jPanelRight.add(jSplitPaneUD);
String[] headers = {
"姓名", "性别", "电话号码", "关系"};
defaultTableModel = new DefaultTableModel(headers, 0) {
public boolean isCellEditable(int row, int column) {
return false;
}
};
jTable = new JTable(defaultTableModel);
jTable.getTableHeader().setReorderingAllowed(false);
jTable.getTableHeader().setResizingAllowed(false);
jScrollPane = new JScrollPane(jTable);
jScrollPane.setPreferredSize(new Dimension(730, 200));
jPanelUp.add(jScrollPane);
jPanelDown.setLayout(new FlowLayout());
jPanel1 = new JPanel();
jPanel1.setLayout(new FlowLayout(0));
jPanel1.setBackground(Color.WHITE);
jPanel1.setSize(1000, 50);
jPanelDown.add(jPanel1);
JLabel jLabel = new JLabel("My Friends");
jPanel1.add(jLabel);
jTextField1 = new JTextField(15);
jTextField1.setText(string1);
jTextField1.setForeground(Color.GRAY);
jTextField1.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
if (jTextField1.getText().equals("") == true) {
jTextField1.setText(string1);
}
}
@Override
public void focusGained(FocusEvent e) {
if (jTextField1.getText().equals(string1) == true) {
jTextField1.setText("");
}
}
});
jPanel1.add(jTextField1);
man = new JRadioButton("男");
man.setSelected(true);
man.setBackground(Color.white);
woman = new JRadioButton("女");
woman.setBackground(Color.white);
buttonGroup = new ButtonGroup();
buttonGroup.add(man);
buttonGroup.add(woman);
jPanel1.add(man);
jPanel1.add(woman);
jTextField2 = new JTextField(15);
jTextField2.setText(string2);
jTextField2.setForeground(Color.GRAY);
jTextField2.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
if (jTextField2.getText().equals("") == true) {
jTextField2.setText(string2);
}
}
@Override
public void focusGained(FocusEvent e) {
if (jTextField2.getText().equals(string2) == true) {
jTextField2.setText("");
}
}
});
jPanel1.add(jTextField2);
jTextField3 = new JTextField(15);
jTextField3.setText(string3);
jTextField3.setForeground(Color.GRAY);
jTextField3.addFocusListener(new FocusListener(