要JAVA写一个聊天的软件,主界面显示好友列表用JScrollPanel,想在每一个好友名字旁边添加一个聊天的按钮,先将好友名字的标签和按钮加入一个面板里面,再将面板加入到jscrollpanel中,但是用流式布局管理器的话,所有的好友姓名和按钮都显示在同一行,用网格管理器的话,就算设置两列,可是显示的时候总是显示成两行 求帮助
代码如下
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
public class JScroll extends JFrame {
JScroll(){
JFrame j=new JFrame();
Container c=j.getContentPane();
j.getContentPane().setLayout(null);
j.setTitle("Usr");
j.setSize(300,500);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//绘制带滚珠的文本窗口用于显示好友列表
JPanel jp=new JPanel(new FlowLayout(FlowLayout.LEFT,10,10));
jp.setSize(160,400);
for(int i=0;i<5;i++){
JLabel lab =new JLabel("好友列表");
JButton jb = new JButton("chat");
lab.setSize(90, 20);
jb.setSize(40,20);
jb.addMouseListener(new MouseListener () {//为每个标签添加鼠标事件监视器
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if(e.getClickCount()>=2)
{
// TalkWindow tkw=new TalkWindow(fName.id);
// tkw.start();
System.out.println("111");
}
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});
jp.add(lab);
jp.add(jb);
}
JScrollPane sp=new JScrollPane(jp);
sp.setBounds(20, 80, 160, 400);
c.add(sp);
j.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new JScroll();
}
}