有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使JFrame中的JPanel可滚动

package new1;

import javax.swing.*;

public class New1 {

    JFrame f = new JFrame("demo");
    JPanel p = new JPanel();
    JLabel l = new JLabel("one");
    JLabel la = new JLabel("two");
    JTextField t = new JTextField();
    JTextField ta = new JTextField();
    JScrollPane sc = new JScrollPane(p); // scrollbar with panel as constructor.

    New1() {
        f.add(p); // adding panel o the frame
        p.setVisible(true);
        p.setLayout(null);
        p.setSize(1400, 900);
        l.setBounds(10, 50, 100, 20); // setting dimension of labels
        la.setBounds(10, 100, 100, 20);
        t.setBounds(50, 100, 100, 20);   //setting dimension of Textfields
        tx.setBounds(50, 50, 100, 20);
        p.add(l);
        p.add(t);
        p.add(la);
        p.add(ta);
        p.add(tx);
        f.setLayout(null);
        f.setVisible(true);
        f.setSize(1400, 900);
        sc.setSize(1350, 700);  //setting size of scrollpane
        sc.setVisible(true);
        p.add(sc);       // adding to the panel
    }

    public static void main(String[] args) {
        new New1();
    }
}

在这里,我给JPanel添加了一些标签,希望使这个面板可以滚动,所以请帮助。我添加了滚动面板,面板作为构造器,所以我可以使面板滚动,但我没有这样做


共 (1) 个答案

  1. # 1 楼答案

    but I am using any jpanel m using only frame and then adding some labels and tf

    实际上,你正在使用JPanel。JFrame的内容窗格是一个JPanel,所以我们实际上是在向框架中添加组件

    阅读Swing教程中关于Using Top Level Containers的部分,该部分解释了Swing中的层次结构

    因此,解决问题的简单方法是:

    1. 将组件添加到面板
    2. 使用面板作为参数创建JScrollPane,然后
    3. 然后将滚动窗格添加到框架中

    这就是它的工作方式,你不能让一个框架滚动