📄 searchframe.java
字号:
package stuinfosystem;
import java.awt.Dimension;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;
import java.net.Socket;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JList;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JComboBox;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.OutputStream;
import java.io.InputStream;
import java.util.Vector;
import java.util.Enumeration;
public class SearchFrame extends JFrame
{
private JTable table = null;
private JFrame frame = null;
//查询的类型
private Vector select = new Vector();
//查询的关键字文本框
private JTextField key = new JTextField(10);
//查询选项
private JComboBox jcb = null;
public SearchFrame(JTable table,JFrame frame)
{
super("查询学生信息");
this.table = table;
this.frame = frame;
Container c = getContentPane();
c.setLayout(new BorderLayout());
setAlwaysOnTop(true);
setPreferredSize(new Dimension(360,100));
setLocationRelativeTo(frame);
select.addElement(MyConstants.KEY_NAME);
select.addElement(MyConstants.KEY_ID);
jcb = new JComboBox(select);
JPanel jp = new JPanel();
jp.setLayout(new FlowLayout());
jp.add(new JLabel("关键字:",JLabel.CENTER));
jp.add(key);
jp.add(new JLabel("选项:",JLabel.CENTER));
jp.add(jcb);
c.add(jp,BorderLayout.CENTER);
JPanel jp2 = new JPanel(new FlowLayout());
JButton saveButton = new JButton("提交查询");
JButton cancelButton = new JButton("取消");
jp2.add(saveButton);
jp2.add(cancelButton);
c.add(jp2,BorderLayout.SOUTH);
//确认按钮
saveButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
if(key.getText().trim().equals(""))
{
JOptionPane.showMessageDialog(SearchFrame.this,"查询内容不能为空");
key.requestFocus();
return;
}
Vector v = new Vector();
//加入操作指示,表示插入数据的1
v.addElement(Integer.toString(MyConstants.SEARCH_KEY));
v.addElement(jcb.getSelectedItem());
v.addElement(key.getText().trim());
try
{
Socket s = new Socket(MyConstants.SERVERIP,MyConstants.SERVERPORT);
try
{
OutputStream os = s.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(v);
InputStream is = s.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
v = (Vector)ois.readObject();
if(v.isEmpty())
{
JOptionPane.showMessageDialog(SearchFrame.this,"没有满足条件的记录");
}
else
{
MyTableModel tableModel =(MyTableModel) SearchFrame.this.table.getModel();
//先移去原来的JTable列表记录
int total = tableModel.getRowCount();
for(int i=total-1;i>=0;i--)
{
tableModel.removeRow(i);
}
//加上查找出来的记录
Enumeration e = v.elements();
while(e.hasMoreElements())
{
Vector vector = (Vector)e.nextElement();
tableModel.addRow(vector);
}
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(SearchFrame.this,e.getMessage());
e.printStackTrace();
}
finally
{
InputStream is = s.getInputStream();
byte buf[] = new byte[32];
int len = is.read();
if (len>0)
{
byte b[] = new byte[len];
int length = is.read(b);
String echo = new String(b,0,length);
JOptionPane.showMessageDialog(SearchFrame.this,echo);
}
}
s.close();
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(SearchFrame.this,ex.getMessage());
}
}
});
//取消按钮
cancelButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
setVisible(false);
dispose();
}
}
);
pack();
setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -