下面将完成“查询内容”的相关功能,实现可查询订单记录。
一、创建Cha类 创建cha类继承JPanel。 主类增加实例化Cha类对象
private Cha chaPanel = null;
private Cha getCha(){
if(chaPanel == null){
chaPanel = new Cha();
chaPanel.setName("chaPanel");
}
return chaPanel;
}
getMainPanel方法增加
将Cha类对象添加到JPanel功能面板组件上。
mainPanel.add(getCha(),getCha().getName());
getChaButton方法增加/修改
为“查询内容”增加鼠标点击事件,实现点击切换页面
chaButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
CardLayout layout = (CardLayout) mainPanel.getLayout();
layout.show(getMainPanel(),"chaPanel");
}
});
二、 “开始查询”按钮
Cha类增加
public JPanel panel;
public JButton button1;//开始查询按钮
public Cha(){
super();
this.setSize(352,302);
this.setOpaque(false);
this.setLayout(new BorderLayout());
panel = new JPanel();
panel.setLayout(new GridBagLayout());
panel.setOpaque(false);
this.add(panel,BorderLayout.CENTER);
GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
gridBagConstraints1.gridx = 0;
gridBagConstraints1.gridy = 0;
gridBagConstraints1.insets = new Insets(5,5,5,5);
button1 = new JButton("开始查询");
button1.setFont(new Font("华文行楷",Font.BOLD,15));
button1.setOpaque(false);
button1.setBorderPainted(false);
button1.setContentAreaFilled(false);
button1.setFocusPainted(false);
panel.add(button1,gridBagConstraints1);
}
三、增加下拉框
Cha类增加
public JComboBox box1;
构造方法增加
box1 = new JComboBox();
GridBagConstraints gridBagConstraints2 = new GridBagConstraints();
gridBagConstraints2.gridx = 0;
gridBagConstraints2.gridy = 1;
gridBagConstraints2.insets = new Insets(5,5,5,5);
gridBagConstraints2.gridwidth = 2;
gridBagConstraints1.weightx = 1.0;
gridBagConstraints2.fill = GridBagConstraints.HORIZONTAL;
panel.add(box1,gridBagConstraints2);
四、查询的内容 Cha类增加
public JLabel label2;
public JTextField field2;
public JLabel label3;
public JTextField field3;
public JLabel label4;
public JTextField field4;
public JLabel label5;
public JTextField field5;
public JLabel label6;
public JTextField field6;
public JLabel label7;
public JTextField field7;
public JLabel label8;
public JTextField field8;
public JLabel label9;
public JTextField field9;
构造方法增加
label2 = new JLabel("商品名称");
GridBagConstraints gridBagConstraints3 = new GridBagConstraints();
gridBagConstraints3.gridx = 0;
gridBagConstraints3.gridy = 2;
gridBagConstraints3.insets = new Insets(0,5,0,0);
panel.add(label2,gridBagConstraints3);
field2 = new JTextField();
field2.setEditable(false);
GridBagConstraints gridBagConstraints4 = new GridBagConstraints();
gridBagConstraints4.gridx = 1;
gridBagConstraints4.gridy = 2;
gridBagConstraints4.insets = new Insets(0,0,0,5);
gridBagConstraints4.weightx = 1.0;
gridBagConstraints4.fill = GridBagConstraints.HORIZONTAL;
panel.add(field2,gridBagConstraints4);
GridBagConstraints gridBagConstraints5= new GridBagConstraints();
gridBagConstraints5.gridx=0;
gridBagConstraints5.gridy=3;
gridBagConstraints5.insets=new Insets(0, 5, 0, 0);
label3=new JLabel("商品厂家");
panel.add(label3, gridBagConstraints5);
GridBagConstraints gridBagConstraints6= new GridBagConstraints();
gridBagConstraints6.gridx=1;
gridBagConstraints6.gridy=3;
gridBagConstraints6.insets=new Insets(0, 0, 0, 5);
gridBagConstraints6.weightx=1.0;
gridBagConstraints6.fill=GridBagConstraints.HORIZONTAL;
field3=new JTextField();
field3.setEditable(false);
panel.add(field3, gridBagConstraints6);
GridBagConstraints gridBagConstraints7= new GridBagConstraints();
gridBagConstraints7.gridx=0;
gridBagConstraints7.gridy=4;
gridBagConstraints7.insets=new Insets(0, 5, 0, 0);
label4=new JLabel("价格");
panel.add(label4, gridBagConstraints7);
GridBagConstraints gridBagConstraints8= new GridBagConstraints();
gridBagConstraints8.gridx=1;
gridBagConstraints8.gridy=4;
gridBagConstraints8.insets=new Insets(0, 0, 0, 5);
gridBagConstraints8.weightx=1.0;
gridBagConstraints8.fill=GridBagConstraints.HORIZONTAL;
field4=new JTextField();
field4.setEditable(false);
panel.add(field4, gridBagConstraints8);
GridBagConstraints gridBagConstraints9= new GridBagConstraints();
gridBagConstraints9.gridx=0;
gridBagConstraints9.gridy=5;
gridBagConstraints9.insets=new Insets(0, 5, 0, 0);
label5=new JLabel("数量");
panel.add(label5, gridBagConstraints9);
GridBagConstraints gridBagConstraints10=new GridBagConstraints();
gridBagConstraints10.gridx=1;
gridBagConstraints10.gridy=5;
gridBagConstraints10.insets=new Insets(0, 0, 0, 5);
gridBagConstraints10.weightx=1.0;
gridBagConstraints10.fill=GridBagConstraints.HORIZONTAL;
field5=new JTextField();
field5.setEditable(false);
panel.add(field5, gridBagConstraints10);
GridBagConstraints gridBagConstraints11= new GridBagConstraints();
gridBagConstraints11.gridx=0;
gridBagConstraints11.gridy=6;
gridBagConstraints11.insets=new Insets(0, 5, 0, 0);
label6=new JLabel("开销&收益");
panel.add(label6, gridBagConstraints11);
GridBagConstraints gridBagConstraints12= new GridBagConstraints();
gridBagConstraints12.gridx=1;
gridBagConstraints12.gridy=6;
gridBagConstraints12.insets=new Insets(0, 0, 0, 5);
gridBagConstraints12.weightx=1.0;
gridBagConstraints12.fill=GridBagConstraints.HORIZONTAL;
field6=new JTextField();
field6.setEditable(false);
panel.add(field6, gridBagConstraints12);
GridBagConstraints gridBagConstraints13=new GridBagConstraints();
gridBagConstraints13.gridx=0;
gridBagConstraints13.gridy=7;
gridBagConstraints13.insets=new Insets(0, 5, 0, 0);
label7=new JLabel("货款余额");
panel.add(label7, gridBagConstraints13);
GridBagConstraints gridBagConstraints14= new GridBagConstraints();
gridBagConstraints14.gridx=1;
gridBagConstraints14.gridy=7;
gridBagConstraints14.insets=new Insets(0, 0, 0, 5);
gridBagConstraints14.weightx=1.0;
gridBagConstraints14.fill=GridBagConstraints.HORIZONTAL;
field7=new JTextField();
field7.setEditable(false);
panel.add(field7, gridBagConstraints14);
GridBagConstraints gridBagConstraints15= new GridBagConstraints();
gridBagConstraints15.gridx=0;
gridBagConstraints15.gridy=8;
gridBagConstraints15.insets=new Insets(0, 5, 0, 0);
label8=new JLabel("经办人");
panel.add(label8, gridBagConstraints15);
GridBagConstraints gridBagConstraints16= new GridBagConstraints();
gridBagConstraints16.gridx=1;
gridBagConstraints16.gridy=8;
gridBagConstraints16.insets=new Insets(0, 0, 0, 5);
gridBagConstraints16.weightx=1.0;
gridBagConstraints16.fill=GridBagConstraints.HORIZONTAL;
field8=new JTextField();
field8.setEditable(false);
panel.add(field8, gridBagConstraints16);
GridBagConstraints gridBagConstraints17= new GridBagConstraints();
gridBagConstraints17.gridx=0;
gridBagConstraints17.gridy=9;
gridBagConstraints17.insets=new Insets(0, 5, 0, 0);
label9=new JLabel("日期");
panel.add(label9, gridBagConstraints17);
GridBagConstraints gridBagConstraints18= new GridBagConstraints();
gridBagConstraints18.gridx=1;
gridBagConstraints18.gridy=9;
gridBagConstraints18.insets=new Insets(0, 0, 0, 5);
gridBagConstraints18.weightx=1.0;
gridBagConstraints18.fill=GridBagConstraints.HORIZONTAL;
field9=new JTextField();
field9.setEditable(false);
panel.add(field9, gridBagConstraints18);
五、“开始查询”按钮增加点击事件
点击按钮下拉框出现进货数据文件的订单。
Cha类增加构造方法增加
先判断文件是否存在,不存在则返回
注意先清除上次的查询订单。否则会重复订单。
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
box1.removeAllItems();
try{
File file = new File("E:\大二\下\JAVA\JAVA课程\专题训练\超市管理系统\sava_date.txt");
if(!file.exists()){
JOptionPane.showMessageDialog(null,"文件不存在");
return;
}
使用高级流将文件的内容保存到集合。
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
List list = new ArrayList();
String str;
while ((str = br.readLine())!=null){
list.add(str);
}
将集合中“单号:”后的内容添加到下拉框内。
int line = list.size();
for (int i = 0;i<=line-1;i++){
String iStr = list.get(i);
int start1 = iStr.indexOf("单号");
int end1 = iStr.indexOf(",");
String value1 = iStr.substring(start1+3,end1);
box1.addItem(value1);
}
}catch (Exception e1){
e1.printStackTrace();
}
}
});
六、选择订单后自动输入到输入框
为下拉框的Item增加点击事件,点击某订单后,自动输入到输入框。
Cha类增加构造方法增加
将保存订单的文件中的所有订单保存到集合中。
box1.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
try{
File file = new File("E:\大二\下\JAVA\JAVA课程\专题训练\超市管理系统\sava_date.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
List list = new ArrayList();
String str;
while ((str = br.readLine())!=null){
list.add(str);
}
getItemCount()方法得到下拉框Item的数量,getSelectedIndex()方法得到下拉列表中的选择的编号。
截取字符串中的相应内容并在输入框中显示。
for (int i = 0;i



