java学习----------QQ界面设计

步骤

第一步 创建一个界面类,定义一个显示界面的方法
第二步 创建一个窗体的对象,设置窗体的属性
第三步 创建各个组件的对象,设置组件的属性,添加到窗体上
第四步 设置窗体可见
第五步 在主方法中,创建界面的对象,调用显示界面的方法。

效果图

在这里插入图片描述

代码实现

// 创建一个界面类,我们为了理解方便,用对应的英文名来命名
public void showUI(){
}
//接下来我们就需要在这个界面类中添加如下语句来实现我们所需要的功能
//创建一个窗体对象
JFrame loginFrame = new Jframe();
//设置窗体的属性,大小,位置居中,关闭的操作
loginFrame.setSize(500,400);
lgoinFrame.setLocationRelativeTo(null);
loignFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置布局
		loginFrame.setLayout(new FlowLayout());

		// 创建一个图片对象
		ImageIcon icon = new ImageIcon("C:\\Users\\QWQ\\Desktop\\QQ.png");
		// 创建一个显示图片的标签对象
		JLabel iconLabel = new JLabel(icon);
		// 添加图片标签到窗体上
		loginFrame.add(iconLabel);

		// 创建一个文本输入框对象
		JTextField nameIn = new JTextField();
		// 设置文本输入框的大小
		Dimension inputSize = new Dimension(400, 40);
		nameIn.setPreferredSize(inputSize);
		// 添加到窗体上
		loginFrame.add(nameIn);

		// 创建一个注册账号的标签对象
		JLabel registerLabel = new JLabel("注册账号");
		// 添加到窗体上
		loginFrame.add(registerLabel);
		JPasswordField pwd = new JPasswordField();
		Dimension inputSize1 = new Dimension(400, 40);
		pwd.setPreferredSize(inputSize1);
		loginFrame.add(pwd);
		JLabel re = new JLabel("输入密码");
		loginFrame.add(re);
		JCheckBox a1 = new JCheckBox("记住密码");
		loginFrame.add(a1);
		JLabel lable1 = new JLabel();
		// 添加到窗体上
		loginFrame.add(lable1);
		JCheckBox a2 = new JCheckBox();
		loginFrame.add(a2);
		JLabel lable2 = new JLabel("自动登录");
		// 添加到窗体上
		loginFrame.add(lable2);
		JButton b1 = new JButton("登录");
		loginFrame.add(b1);
		// 设置窗体可见
		loginFrame.setVisible(true);
		//接下来我们只需要在主函数中:
		// 创建一个界面的对象
		lo ui = new lo();
		// 调用显示界面的方法
		ui.showUI();


相关解释

文本输入框 JTextField
密码输入框 JPasswordField
按钮 JButton
复选框 JCheckBox
显示文字的标签 JLabel
显示图片的标签 JLabel
顶级容器组件 JFrame

java 大一课程设计 qq聊天程序socket=new Socket(); textPanel.send.setEnabled(false); thread=new Thread(this); setVisible(true); validate(); } public void actionPerformed(ActionEvent e) { if(e.getSource()==save) { savefile.setVisible(true); if(savefile.getFile()!=null) { try{ File file=new File(savefile.getDirectory(),savefile.getFile()); FileWriter tofile=new FileWriter(file); BufferedWriter out=new BufferedWriter(tofile); out.write(textPanel.getWholeText(), 0, textPanel.getWholeText().length()); out.close(); tofile.close(); } catch(IOException e2){} } } else if(e.getSource()==doodle) { thePaint.setVisible(true); } else if(e.getSource()==Disconnect) { if(socket.isConnected()) { try{ ps.writeUTF("QUIT:"); ps.flush(); socket.close();}catch(IOException ee){System.out.println("无法关闭");} } setTitle("用户"+name+"离线"); textPanel.send.setEnabled(false); nameList.removeAll(); nameLable.setText("在线用户: "+"人数: "+(nameList.getItemCount())); } else if(e.getSource()==connect) { try//请求和服务器建立套接字连接 { if(socket.isConnected()){} else { InetAddress address=InetAddress.getLocalHost(); InetSocketAddress socketAddress=new InetSocketAddress(address,8080); socket.connect(socketAddress); reader=new DataInputStream(socket.getInputStream()); ps=new DataOutputStream(socket.getOutputStream()); out=new ObjectOutputStream(socket.getOutputStream()); in=new ObjectInputStream(socket.getInputStream()); ps.writeUTF(name);//开始即传输用户名 ps.flush(); setTitle("用户"+name+"在线"); thread.start(); } }catch(IOException ee){} } else if(e.getSource()==groupChat) { groupMode=true; condition.setText("群 聊\n"); textPanel.send.setEnabled(true); } else if(e.getSource()==privateChat) { groupMode=false; condition.setText("私 聊\n"); textPanel.send.setEnabled(true); } else if(e.getSource()==nameList) { if(!groupMode) { indexName=nameList.getSelectedItem(); condition.setText("私 聊\n与"+nameList.getSelectedItem()+"聊天中\n"); } } else if(e.getSource()==textPanel.send) { if(e.getSource()==textPanel.send) { textPanel.text=textPanel.in.getText(); Font f=textPanel.in.getFont(); textPanel.out.setFont(f); Color c=textPanel.in.getForeground(); textPanel.out.setForeground(c); textPanel.in.setText(""); if(!groupMode) { textPanel.out.append("\n"+"我说:"+textPanel.text+"\n"); } else { textPanel.out.append("\n"); } System.out.println("文本输出~~"); String text=textPanel.text; if(groupMode) { StringBuffer msg=new StringBuffer("MSG:"); msg.append(text); String s=msg.toString(); try{ ps.writeUTF(s); ps.flush();}catch(IOException ee){System.out.println("输出文本错误");} System.out.println("成功输出"); } else { StringBuffer msg=new StringBuffer("MSGTOONE:"); msg.append(indexName+":"+text); String s=msg.toString(); try{ ps.writeUTF(s); ps.flush();}catch(IOException ee){System.out.println("输出文本错误");} System.out.println("成功输出"); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值