【问题标题】:How do I add JScrollpane to a JPanel?如何将 JScrollpane 添加到 JPanel?
【发布时间】:2020-05-21 18:28:44
【问题描述】:

我有一条线延伸到我的屏幕之外,所以我看不到它。所以我需要在 Test2 类中添加一个 JScrollpane,但是当我尝试时它没有显示出来。

import javax.swing.*;
import java.awt.*;

public class Test extends JFrame {

    Test() {
        setSize(1000, 500);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setContentPane(new Test2());
        setVisible(true);
    }

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

class Test2 extends JPanel {

    protected void paintComponent(Graphics g) {
        g.drawLine(100, 100, 2000, 100);
    }
}

【问题讨论】:

  • 您显示的代码不会尝试使用 JScrollPane。

标签: java swing jframe jpanel jscrollpane


【解决方案1】:

您没有在代码中使用 JscrollPanel,这就是您看不到滚动条的原因!我认为这会奏效

import javax.swing.*;
import java.awt.*;
public class Test extends JFrame {
Test() {
    setSize(1000, 500);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    getContentPane().setLayout(new FlowLayout());
    Test2 test2=new Test2();
    JScrollPane scrollableLine = new JScrollPane(test2);
scrollableLine.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    scrollableLine.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    setContentPane(scrollableLine);
    setVisible(true);
}

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

class Test2 extends JPanel {

@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawLine(100, 100, 2000, 100);

}
@Override
public Dimension getPreferredSize() {
    return new Dimension(3000, 3000);
}

}

【讨论】:

  • 是的,这有效,JScrollpane 显示在两侧。但我不能让它们向右或向下看。知道如何解决吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多