繁体   English   中英

TextArea上的JScrollPane

[英]JScrollPane on a TextArea

好的,我已经阅读了本网站上有关该主题的几乎所有主题,但老实说,它们看上去都让我感到困惑,而且它们都不适合我的代码。 我创建了一个简单的TextArea

JTextArea ttt=new JTextArea("");
ttt.setSize(500, 300);
ttt.setLocation(10, 100);
ttt.setEditable(false);

然后使用此行创建Scrollpane并将其添加到TextArea

JScrollPane sp=new JScrollPane(ttt,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

然后将其添加到我的JFrame中

myForm.add(sp); 

正如我在大多数线程上所读到的那样,此代码应该有效,但事实并非如此。 在尝试添加ScrollPane之前,TextArea已显示在框架上,但是现在整个TextArea甚至都没有显示。 谢谢。

编辑; 例如,这是我的主要功能,无法正常工作

public class Test2 {

    public static void main(String[] args) {
        JFrame myForm=new JFrame("Connect-4");
        myForm.setLayout(new GridLayout(4,2)); // assign layout
        myForm.setSize(new Dimension(500,400)); // size

        JTextArea ttt = new JTextArea (3,3 );
        ttt.setEditable(false);
        //ttt.setSize(500, 300);
        //ttt.setLocation(10, 100);     
        JScrollPane sp=new JScrollPane(ttt,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        myForm.add(sp);

        myForm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        myForm.setLayout(null);
        myForm.setVisible(true);

    }
}

编辑2; 2个Jlabel,2个文本字段,按钮和一个文本区域图像

编辑3;

public class Test2 {

    public static void main(String[] args) {
                JButton button=new JButton("Add");
        //button.setSize(100, 50);
        //button.setLocation(450, 40);


        JTextField tf1=new JTextField();
        tf1.setSize(150, 30);
        tf1.setLocation(70, 52);


        JLabel l1=new JLabel("Name");
        //l1.setSize(51, 50);
        //l1.setLocation(10, 40);
        l1.setFont(new Font("", Font.PLAIN, 20));


        JTextField tf2=new JTextField();
        tf2.setSize(150, 30);
        tf2.setLocation(285, 52);

        JLabel l2=new JLabel("Phone");
        l2.setSize(55, 50);
        l2.setLocation(225, 40);
        l2.setFont(new Font("", Font.PLAIN, 20));

        //////
        JTextArea ttt=new JTextArea("");
        ttt.setSize(500, 300);
        ttt.setLocation(10, 100);

        JPanel panel1=new JPanel(new FlowLayout());
        panel1.add(l1);
        panel1.add(tf1);
        panel1.add(l2);
        panel1.add(tf2);    
        panel1.add(button);


        JPanel panel2=new JPanel();
        panel2.add(new JButton("FSFSD"));
        panel2.add(new JButton("RIGHT"));

        JPanel all=new JPanel(new BorderLayout());
        all.add(panel1, BorderLayout.NORTH);
        all.add(ttt, BorderLayout.CENTER);

        JFrame frame=new JFrame();
        frame.setContentPane(all);
        //frame.add(all);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 500);
        frame.setVisible(true);


    }
}

实例化TextArea之后

JTextArea ttt = new JTextArea (3,3 );
ttt.setEditable(false);
JScrollPane sp=new JScrollPane(ttt,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
myJFrame.add(sp);

验证您的JFrame是否包含合适的裁缝以及宽度和高度,例如

myJFrame.setLayout(new GridLayout(4,2)); // assign layout
myJFrame.setSize(new Dimension(500,400)); // size

您正在设置布局

myForm.setLayout(new GridLayout(4,2));

然后用

myForm.setLayout(null);

删除此行,您将看到您的文本区域。

您可能还想在显示框架之前调用myFrame.pack()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM