十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、swing的界面可以直接用netbeans画出来嘛。
创新互联专注于新绛网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供新绛营销型网站建设,新绛网站制作、新绛网页设计、新绛网站官网定制、小程序定制开发服务,打造新绛网络公司原创品牌,更为您提供新绛网站排名全网营销落地服务。
2、可以把输出的聊天内容都放在一个StringBuffer里,每打出一句话,就把这句话追加在StringBuffer,然后把StringBuffer里的内容输出到Textarea中。
3、好友列表可以用JList
又发现你了,还是在折腾按钮。
看来 这个按钮 此生是得罪你了......
在那个鼠标移入事件里,你用getSource,能取到当前触发事件的按钮....
然后去bton里面找跟他一样的。如果一样,
那么,这个按钮在bton中的位置(就遍历用的索引)就是它的编号。
如果你说的编号跟bton中存放按钮的顺序一致,就这样了。
如果不是,那根据getSource拿到的按钮,能得到它的名字
根据名字确定是哪个编号的按钮
====================
这样子不就好办了.......
我以前给你的代码还有吧。
你这么多按钮应该是加的同一个事件吧
btnTest1.addMouseListener(lll);
btnTest2.addMouseListener(lll);
btnTest3.addMouseListener(lll);
在事件里:
Button button = (Button) e.getSource();
button.getLabel() // 获得按钮的名称,就是你按钮上的1 2 3 4
这样你把取到的 1 2 3 4 加到menu上就行了......
===================
不给你完整代码,估计你是明白不了...
import java.awt.Button;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPopupMenu;
import javax.swing.UIManager;
public class Exec1 extends JFrame {
public Exec1() {
init();
}
/**
* 初始化窗体
*/
private void init() {
String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
try {
UIManager.setLookAndFeel(lookAndFeel);
} catch (Exception e) {
e.printStackTrace();
}
setLayout(null);
final Button btnTest1 = new Button("1");
final Button btnTest2 = new Button("2");
final Button btnTest3 = new Button("3");
btnTest1.setBackground(Color.RED);
btnTest1.setBounds(20, 30, 100, 25);
btnTest2.setBounds(20, 60, 100, 25);
btnTest3.setBounds(20, 90, 100, 25);
btnTest1.addMouseListener(lll);
btnTest2.addMouseListener(lll);
btnTest3.addMouseListener(lll);
add(btnTest1);
add(btnTest2);
add(btnTest3);
setSize(200, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Exec1().setVisible(true);
}
private MouseListener lll = new MouseListener() {
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
Button button = (Button) e.getSource();
JPopupMenu menu = new JPopupMenu();
JLabel lblText = new JLabel();
String str = "";
str += "html横坐标:" + button.getBounds().x;
str += "br纵坐标:" + button.getBounds().y;
str += "br背景色:" + button.getBackground().toString();
str += "br编号:" + button.getLabel();
lblText.setText(str);
menu.add(lblText);
menu.show(button, 0, 25);
}
public void mouseExited(MouseEvent e) {
}
};
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java点虐 .*;
import java.io.*;
public class ClientDemo01 {
public static void main(String[] args){
JFrame f=new JFrame("AA");
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JTextArea ta=new JTextArea(15,30);
ta.setEditable(false); //文本域只读
JScrollPane sp=new JScrollPane(ta); //滚动窗格
JTextField tf=new JTextField(20);
JButton b=new JButton("发送");
p1.add(sp);
p2.add(tf);
p2.add(b);
f.add(p1,"Center");
f.add(p2,"South");
f.setBounds(300,300,360,300);
f.setVisible(true);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Socket socket=null;
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try{
socket=new Socket("192.168.0.4",5000);
bis=new BufferedInputStream(socket.getInputStream());
bos=new BufferedOutputStream(socket.getOutputStream());
MyThread01 mt=new MyThread01(bis,ta);
mt.start();
}catch(Exception e){
e.printStackTrace();
}
b.addActionListener(new ButtonActionListener01(tf,ta,bos));
}
}
class ButtonActionListener01 implements ActionListener{
JTextField tf;
JTextArea ta;
BufferedOutputStream bos;
public ButtonActionListener01(JTextField tf,JTextArea ta,BufferedOutputStream bos){
this.tf=tf;
this.ta=ta;
this.bos=bos;
}
public void actionPerformed(ActionEvent e){
String message=tf.getText();
if(!message.equals("")){
tf.setText(""); //清空文本框
ta.append("AA:"+message+"\n"); //添加到文本域并换行
try{
bos.write(message.getBytes());
bos.flush();
}catch(Exception ex){
System.out.println("发送失败");
}
}
}
}
class MyThread01 extends Thread{
BufferedInputStream bis;
JTextArea ta;
public MyThread01(BufferedInputStream bis,JTextArea ta){
this.bis=bis;
this.ta=ta;
}
public void run(){
try{
while(true){
byte[] b=new byte[100];
int length=bis.read(b);
String message=new String(b,0,length);
ta.append("BB:"+message+"\n");
}
}catch(Exception e){
e.printStackTrace();
}
}
} import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java点虐 .*;
import java.io.*;
public class ServerDemo01{
public static void main(String[] args){
JFrame f=new JFrame("BB");
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JTextArea ta=new JTextArea(12,30); //文本域,第一个参数为行数,第二个参数为列数
ta.setEditable(false); //文本域只读
JScrollPane sp=new JScrollPane(ta); //滚动窗格
JTextField tf=new JTextField(20);
JButton b=new JButton("发送");
p1.add(sp);
p2.add(tf);
p2.add(b);
f.add(p1,"Center");
f.add(p2,"South");
f.setBounds(300,300,360,300);
f.setVisible(true);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ServerSocket server=null;
Socket socket=null;
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
try{
server=new ServerSocket(5000);
//ta.append("等待AA连接...\n");
socket=server.accept();
//ta.append("AA已连接\n");
bis=new BufferedInputStream(socket.getInputStream());
bos=new BufferedOutputStream(socket.getOutputStream());
MyThread1 mt=new MyThread1(bis,ta);
mt.start();
}catch(Exception e){
e.printStackTrace();
}
b.addActionListener(new ButtonActionListener1(tf,ta,bos));
}
}
class ButtonActionListener1 implements ActionListener{
JTextField tf;
JTextArea ta;
BufferedOutputStream bos;
public ButtonActionListener1(JTextField tf,JTextArea ta,BufferedOutputStream bos){
this.tf=tf;
this.ta=ta;
this.bos=bos;
}
public void actionPerformed(ActionEvent e){
String message=tf.getText(); //获取文本框中的内容
if(!message.equals("")){
tf.setText(""); //清空文本框
ta.append("BB:"+message+"\n"); //添加到文本域并换行
try{
bos.write(message.getBytes());
bos.flush();
}catch(Exception ex){
System.out.println("发送失败!");
}
}
}
}
class MyThread1 extends Thread{
BufferedInputStream bis;
JTextArea ta;
public MyThread1(BufferedInputStream bis,JTextArea ta){
this.bis=bis;
this.ta=ta;
}
public void run(){
try{
while(true){
byte[] b=new byte[100];
int length=bis.read(b);
String message=new String(b,0,length);
ta.append("AA:"+message+"\n");
}
}catch(Exception e){
e.printStackTrace();
}
}
}