我在JScrollPane中添加了一个JTextArea  可是控制不了他在Panel中出现的位置和大小,setLocation和布局管理器的方法都不行,这个该怎么做到呢??

解决方案 »

  1.   

    setPreferredSize(Dimension preferredSize)设置此组件的首选大小
      

  2.   

    这是JPanel部分的public class MyPanel extends JPanel{
    JTextArea taText = new JTextArea(8,2);
    JTextArea taContent = new JTextArea(12,59);
    JScrollPane  jSP = new JScrollPane(taContent);
    Font f = new Font("宋体", Font.BOLD, 20);

    public MyPanel(){
    jSP.setSize(600, 600);
    jSP.setOpaque(false);
    jSP.getViewport().setOpaque(false);
    jSP.setLocation(7, 7);
    this.add(jSP);
    //taContent.setLocation(100, 200);
    taContent.setLineWrap(true);
    taContent.setOpaque(false);
    taContent.setBackground(Color.blue);
    taContent.setFont(f);
    taContent.setSize(200,200);
    }这是JFrame部分的public class MyFrame extends JFrame{

    JButton jbEnter = new JButton("发送"); 

    public MyFrame(String name){
    super(name);
    // this.setContentPane(new MyPanel());
    this.add(new MyPanel());
    this.setSize(800,450);
    this.setResizable(false);

    this.setDefaultCloseOperation(3);
    this.setVisible(true);
    }
    }
      

  3.   

    jSP.setPreferredSize(new Dimension(800,450));
      

  4.   

    你这应该没有设置布局管理器,所以Jframe默认使用默认布局管理器。
    你在
    jSP.setLayout(null);
    设置布局管理器为空,
    直接设置控件的位置和大小
    JTextArea.setBounds(x, y, width, height);
      

  5.   

    jSP.setLayout(null);设置为空以后,文本框就出不来了。。
      

  6.   

    jSP.setLayout(null);设置为空以后,文本框就出不来了。。
    怎么可能,我这边显示很正常啊,JSP和taContent 的位置和大小随便放,class MyPanel extends JPanel{
    //    JTextArea taText = new JTextArea(8,2);
        JTextArea taContent = new JTextArea(12,59);
        
        JScrollPane  jSP = new JScrollPane(taContent);
        
        
        Font f = new Font("宋体", Font.BOLD, 20);
         
        public MyPanel(){
         setLayout(null);
        
            jSP.setBounds(5, 5, 600, 300);
            jSP.setOpaque(false);
            jSP.getViewport().setOpaque(false);
            jSP.setLocation(7, 7);
            this.add(jSP);
            //taContent.setLocation(100, 200);
            taContent.setLineWrap(true);
            taContent.setOpaque(false);
            taContent.setBackground(Color.blue);
            taContent.setFont(f);
            taContent.setSize(200,200);
            jSP.setLayout(null);
            taContent.setBounds(300,200, 100, 100);
            jSP.add(taContent);
            
        }
    }
      

  7.   

    jSP.setLayout(null);设置为空以后,文本框就出不来了。。
    怎么可能,我这边显示很正常啊,JSP和taContent 的位置和大小随便放,class MyPanel extends JPanel{
    //    JTextArea taText = new JTextArea(8,2);
        JTextArea taContent = new JTextArea(12,59);
        
        JScrollPane  jSP = new JScrollPane(taContent);
        
        
        Font f = new Font("宋体", Font.BOLD, 20);
         
        public MyPanel(){
         setLayout(null);
        
            jSP.setBounds(5, 5, 600, 300);
            jSP.setOpaque(false);
            jSP.getViewport().setOpaque(false);
            jSP.setLocation(7, 7);
            this.add(jSP);
            //taContent.setLocation(100, 200);
            taContent.setLineWrap(true);
            taContent.setOpaque(false);
            taContent.setBackground(Color.blue);
            taContent.setFont(f);
            taContent.setSize(200,200);
            jSP.setLayout(null);
            taContent.setBounds(300,200, 100, 100);
            jSP.add(taContent);
            
        }
    }恩  谢谢 大致上ok了 ,谢谢,还有点小问题没解决,回来我再看看。。