⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.txt

📁 简单GUI聊天程序
💻 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 + -