2 liangjda liangjda 于 2014.12.13 10:54 提问

java jscrollpanel显示问题

要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();
}

}


1个回答

devmiao
devmiao   Ds   Rxr 2014.12.13 11:01
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!