📄 clientframe.java
字号:
package Day25;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ClientFrame extends JFrame {
//************************************主窗口元件建立
JTextArea text = new JTextArea();//写文件区域
JScrollPane sp = new JScrollPane(text);
JTextField text2 = new JTextField(35);
JButton button = new JButton("发送");
JPanel jp= new JPanel();
JMenuBar menuBar = new JMenuBar();//菜单栏
JMenu fileMenu = new JMenu("聊天室");//菜单
JMenuItem loginItem = new JMenuItem("登录");
JMenuItem exitItem = new JMenuItem("退出");
JMenu helpMenu = new JMenu("帮助");
JMenuItem aboutItem = new JMenuItem("关于");
ClientManager client = new ClientManager(this);
ClientListener Cis = new ClientListener(this);
//*****************************构造器,建立窗口
public ClientFrame(){
this.setTitle("网络聊天--Client");
this.setSize(480,320);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
loginItem.addActionListener(Cis);
exitItem.addActionListener(Cis);
aboutItem.addActionListener(Cis);
button.addActionListener(Cis);
fileMenu.add(loginItem);
fileMenu.add(exitItem);
helpMenu.add(aboutItem);
menuBar.add(fileMenu);
menuBar.add(helpMenu);
jp.add(text2);
jp.add(button);
this.getContentPane().add(menuBar,BorderLayout.NORTH);
this.getContentPane().add(sp);
this.getContentPane().add(jp,BorderLayout.SOUTH);
this.setVisible(true);
}
public static void main(String[] args) {
new ClientFrame();
}
//*********************************登录窗口
public void loginItemClicked() {
final JDialog jl = new JDialog(this,true);
jl.setSize(320,140);
Panel panel1 = new Panel();
Panel panel2 = new Panel();
Panel panel3 = new Panel();
JLabel label1 = new JLabel("输入名字");
final JTextField text1 = new JTextField(12);
JLabel label0 = new JLabel(" ");
JLabel label2 = new JLabel("服务器IP:");
final JTextField text2 = new JTextField(12);
JLabel label3 = new JLabel("端口:");
final JTextField text3 = new JTextField(6);
JButton button = new JButton("确定");
JButton button1 = new JButton("重设");
//****************增加一个登录窗口匿名监听器
ActionListener cbs = new ActionListener() {//确定按钮button1监听
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
client.clientbox.set(text1.getText(),text2.getText(),text3.getText());//发送用户信息
try {
client.clientbox.running();
} catch (Exception e1) {
}
jl.dispose();
}
};
ActionListener cbs2 = new ActionListener() {//取消按钮button2监听
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
text1.setText(null);
text2.setText(null);
text3.setText(null);
}
};
button.addActionListener(cbs);
button1.addActionListener(cbs2);
panel1.add(label1);
panel1.add(text1);
panel1.add(label0);
panel2.add(label2);
panel2.add(text2);
panel2.add(label3);
panel2.add(text3);
panel3.add(button);
panel3.add(button1);
jl.setLayout(new GridLayout(3,1));
jl.add(panel1);
jl.add(panel2);
jl.add(panel3);
jl.setVisible(true);
}
//*********************************************退出程序
public void exitItemClicked() {
client.exit();
System.exit(0);
}
//********************************************帮助窗口
public void helpItemClicked() {
JDialog about = new JDialog(this,true);//flase打开时父窗口能活动,true不能活动
about.setSize(400,200);
JLabel label = new JLabel("PiPi V1.0版,继续使用请付2000块钱!");
about.getContentPane().add(label);
about.setVisible(true);
}
//**************************************发送按钮
public void buttonClicket() throws Exception {
client.send(text2.getText());
this.text2.setText(null);
}
}
//***********************************************主窗口监听器
class ClientListener implements ActionListener{
ClientFrame frame = null;
public ClientListener(ClientFrame frame){
this.frame = frame;
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()== frame.loginItem){
frame.loginItemClicked();
}
else if(e.getSource()==frame.exitItem){
frame.exitItemClicked(); }
else if(e.getSource()==frame.aboutItem){
frame.helpItemClicked();
}
else if(e.getSource()==frame.button){
try {
frame.buttonClicket();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -