📄 mainframe.txt
字号:
client_frame.java
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.Dictionary.*;
public class client_frame extends JDialog
{
static JFrame awindow = new JFrame("客户端应用程序");
static Container contentPane = awindow.getContentPane();
private static JPanel jpan = new JPanel();
private static JLabel name = new JLabel("UserName");
private static JLabel pass = new JLabel("PassWord");
private static JTextField f_name = new JTextField("name");
private static JPasswordField f_pass = new JPasswordField("name");
private static JButton enter = new JButton("Enter");
private static JButton reset = new JButton("Reset");
public client_frame()
{
}
//draw_Frame
public void draw()
{
contentPane.setLayout(new BorderLayout());
jpan.setLayout(new GridLayout(3,2));
jpan.setBorder(BorderFactory.createTitledBorder("Welcome to Login!"));
jpan.add(name);
jpan.add(f_name);
jpan.add(pass);
jpan.add(f_pass);
jpan.add(enter);
jpan.add(reset);
contentPane.add(jpan);
position();
}
//事件
public void createMenuBar(){
enter.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e) {
menu_enter_actionPerformed(e);
}
});
reset.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){
menu_reset_actionPerformed(e);
}
});
f_name.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e) {
menu_enter_actionPerformed(e);
}
});
f_pass.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e) {
menu_enter_actionPerformed(e);
}
});
}
private void menu_enter_actionPerformed(ActionEvent e)
{
if (!f_name.getText().equals("")||f_pass.getPassword()==null)
{
StringBuffer s_pass_buf = new StringBuffer();
String s_name = new String();
String s_pass = new String();
char[] pass_primes ;
char pass_char ;
s_name=f_name.getText();
pass_primes=f_pass.getPassword();
for (int i=0;i<pass_primes.length;i++)
{
pass_char = pass_primes[i];
s_pass_buf.append(pass_char);
}
s_pass = s_pass_buf.toString();
verify_user_password(s_name,s_pass);
}
else {
JOptionPane.showMessageDialog((Component) null,
"Please enter user name and password !",
"Data Mining",
JOptionPane.ERROR_MESSAGE);
}
}
private void menu_reset_actionPerformed(ActionEvent e)
{
f_name.setText("");
f_pass.setText("");
}
//调用verify中的listAuthors方法,验证用户名和密码!
private void verify_user_password(String s_name,String s_pass)
{
try{
if (s_name.equals("name")&&s_pass.equals("name"))
{
int z = 15;
System.out.println(s_name+" "+z);
Thread thr = new Thread(new client());
Thread th = new Thread(new MainFrame(s_name,z));
th.start();
thr.start();
awindow.dispose();
}
else
{
JOptionPane.showMessageDialog((Component) null,
"Your PassWord is Wrong !",
"Data Mining",
JOptionPane.ERROR_MESSAGE);
}
}catch(Exception e){System.out.println(e);}
}
//Frame居中
void position()
{
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension dialogSize = awindow.getSize() ;
if (dialogSize.height> screenSize.height)
{
dialogSize.height = screenSize.height;
}
if (dialogSize.width > screenSize.width)
{
dialogSize.width = screenSize.width;
}
awindow.setLocation((screenSize.width - dialogSize.width) / 2, (screenSize.height - dialogSize.height) / 2);
}
//窗口关闭
public void closewindow (JFrame awindows)
{
awindows.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main (String args[])
{
client_frame cf = new client_frame();
cf.draw();
//awindow.pack();
awindow.setSize(250,150);
awindow.show();
cf.createMenuBar();
cf.closewindow(awindow);
}
}
client.java
import java.io.*;
public class client implements Runnable
{
String strmess = "";
private static Socket socket;
public DataInputStream inData;
public static DataOutputStream outData;
boolean isStandalone = false;
String host="127.0.0.1";
int port=5432;
public void run() {
try{
socket=new Socket(
InetAddress.getByName(host),port);
inData = new DataInputStream (socket.getInputStream());
outData = new DataOutputStream (socket.getOutputStream());
listen lis = new listen();
Thread threadlis = new Thread(lis);
Thread threadsen = new Thread(new sendmessage("",strmess));
threadlis.start();
threadsen.start();
int money=0;
MainFrame mf = new MainFrame("",money);
mf.showMessageIntoJTextArea("服务器连接成功!");
//threadclo.start();
}catch(IOException io){io.printStackTrace();
System.out.println("client :"+io);
int money=0;
MainFrame mf = new MainFrame("",money);
mf.showMessageIntoJTextArea("服务器断开或服务器连接失败!\n请重新登陆!");
}
}
//监听服务器端发来的信息
class listen implements Runnable{
public void run(){
try
{
while (true)
{
int money=0;
String outall = inData.readUTF();
MainFrame mf = new MainFrame("",money);
System.out.println("client: "+outall);
mf.showMessageIntoJTextArea(outall);
}
}
catch (IOException ex)
{ex.printStackTrace();}
}
}
}
MainFrame.java
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.io.*;
import java.net.*;
import java.util.Dictionary.*;
public class MainFrame extends JDialog implements Runnable{
JFrame f= new JFrame("MainFrame!");
//JPanel contentPane;
BorderLayout borderLayout1=new BorderLayout();
BorderLayout borderLayout2=new BorderLayout();
BorderLayout borderLayout3=new BorderLayout();
BorderLayout borderLayout4=new BorderLayout();
GridLayout gridLayout1=new GridLayout();
GridLayout gridLayout2=new GridLayout();
Border border1;
Border border2;
Border border3;
Border border4;
Border border5;
Border border6;
JToolBar jToolBar2=new JToolBar(0);
JButton jbutton1 = new JButton("提交");
JButton jbutton2 = new JButton("清除");
JButton jbutton3 = new JButton("退出");
JPanel Panel1=new JPanel();
JPanel Panel2=new JPanel();
JPanel Panel3=new JPanel();
JPanel Panel4=new JPanel();
JPanel Panel5=new JPanel();
JScrollPane jScrollPanel=new JScrollPane() ;
JTextField t1=new JTextField();
static JTextArea t2=new JTextArea();
JLabel jLabel=new JLabel();
private String s_name;
private int money;
public MainFrame(String s_name,int money)
{
this.s_name=s_name;
this.money=money;
f.setResizable(false);
}
//Construct MainFrame
public void run(){
Container contentPane=f.getContentPane();
border5=BorderFactory.createEtchedBorder(Color.white,new
Color(142,142,142));
contentPane.setLayout(borderLayout1);
f.setDefaultCloseOperation(3);
f.setSize(new Dimension(450,400));
f.show();
border2=BorderFactory.createEmptyBorder(4,4,4,4);
border3=BorderFactory.createEmptyBorder(4,5,2,0);
border4=BorderFactory.createEmptyBorder(5,0,2,4);
Panel1.setLayout(borderLayout2);
Panel2.setMaximumSize(new Dimension(32767,35));
Panel2.setMinimumSize(new Dimension(10,35));
Panel2.setPreferredSize(new Dimension(10,35));
Panel2.setLayout(borderLayout3);
Panel3.setBorder(border2);
Panel3.setLayout(borderLayout4);
gridLayout1.setColumns(1);
Panel4.setLayout(gridLayout1);
Panel4.setPreferredSize(new Dimension(70,10));
Panel4.setMinimumSize(new Dimension(70,10));
Panel4.setMaximumSize(new Dimension(70,32767));
gridLayout2.setColumns(1);
Panel5.setLayout(gridLayout2);
Panel5.setBorder(border4);
jLabel.setBorder(border3);
jLabel.setText("Message:");
t1.setEnabled(true);
t2.setEditable(false);
contentPane.add(jToolBar2,BorderLayout.SOUTH);
//在按钮间加入分隔符
jToolBar2.addSeparator(new Dimension(100,10));
jToolBar2.add(jbutton1);
jToolBar2.addSeparator(new Dimension(50,10));
jToolBar2.add(jbutton2);
jToolBar2.addSeparator(new Dimension(50,10));
jToolBar2.add(jbutton3);
contentPane.add(Panel1,BorderLayout.CENTER);
Panel1.add(Panel3,BorderLayout.CENTER);
Panel3.add(jScrollPanel,BorderLayout.CENTER);
Panel1.add(Panel2,BorderLayout.SOUTH);
Panel2.add(Panel4,BorderLayout.WEST);
Panel4.add(jLabel);
Panel2.add(Panel5,BorderLayout.CENTER);
Panel5.add(t1);
jScrollPanel.getViewport().add(t2);
f.show();
this.createMenuBar();
this.closewindow();
t2.append("用户"+s_name+",欢迎你的到来!~\n");
}
//事件处理
public void createMenuBar(){
t1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
menu_jbutton1_actionPerformed(e);
}
});
jbutton1.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e) {
menu_jbutton1_actionPerformed(e);
}
});
jbutton2.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e) {
menu_jbutton2_actionPerformed(e);
}
});
jbutton3.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e) {
menu_jbutton3_actionPerformed(e);
}
});
}
private void menu_jbutton1_actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
String text;
if(cmd.equals("提交")){
text=t1.getText();
try{
Thread threadsen = new Thread(new sendmessage(s_name,text));
threadsen.start();
}catch(Exception ee){System.out.println(ee);}
t1.setText("");
}
}
private void menu_jbutton2_actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if(cmd.equals("清除")){
// t2.setText("");
t1.setText("");
}
}
private void menu_jbutton3_actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if(cmd.equals("退出")){
System.exit(0);
}
}
public void showMessageIntoJTextArea(String messa)
{
t2.append(messa+"\n");
}
//MainFrame居中
void position()
{
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension dialogSize = f.getSize() ;
if (dialogSize.height> screenSize.height)
{
dialogSize.height = screenSize.height;
}
if (dialogSize.width > screenSize.width)
{
dialogSize.width = screenSize.width;
}
f.setLocation((screenSize.width - dialogSize.width) / 2,
(screenSize.height - dialogSize.height) / 2);
}
//窗口关闭
public void closewindow ()
{
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/*
public static void main(String args[])
{
MainFrame mf = new MainFrame();
mf.drawframe();
//f.pack();
mf.createMenuBar();
mf.closewindow();
}
*/
}
sendmessage.java
import java.net.*;
import java.io.*;
public class sendmessage implements Runnable{
private static String s_name;
private static String senmess;
public sendmessage(String s_name,String senmess)
{
this.senmess = senmess;
this.s_name = s_name;
}
public void run(){
try
{
client cl = new client();
cl.outData.writeUTF(s_name+":"+senmess);
}
catch (IOException ex)
{ex.printStackTrace();}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -