JScrollPane 不显示 JPanel
JScrollPane does not show the JPanel
所以我试图在 java 中制作一个浏览器。我想让用户能够滚动网站的内容。我尝试将 JPanel 放在 JScrollPane 中,但 JPanel 没有出现。遇到这个问题后,我做了一个新的 java 项目来测试这个问题,问题仍然存在。
下面是测试项目的代码:
package exp;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class test {
public static void main(String[] args) {
JFrame f = new JFrame("test");
JScrollPane s = new JScrollPane();
JPanel p = new JPanel();
s.add(p);
f.add(s);
f.setVisible(true);
f.setSize(800, 600);
p.setBackground(Color.WHITE);
p.getGraphics().drawString("test", 50, 50);
}
}
这是它显示的内容:
JScrollPane s = new JScrollPane();
JPanel p = new JPanel();
s.add(p);
不要将组件直接添加到滚动窗格。该组件需要添加到滚动窗格的 viewport
中。您可以使用:
JPanel p = new JPanel();
JScrollPane s = new JScrollPane(p);
或
JPanel p = new JPanel();
JScrollPane s = new JScrollPane();
s.setViewportView( p );
不要使用getGraphics(...)
方法进行绘画:
// p.getGraphics().drawString("test", 50, 50);
您应该覆盖 JPanel
的 paintComponent()
方法并将面板添加到框架中。阅读有关 Custom Painting 的 Swing 教程部分,了解更多信息和工作示例。
将 link 本教程放在手边,以了解所有 Swing 基础知识。
所以我试图在 java 中制作一个浏览器。我想让用户能够滚动网站的内容。我尝试将 JPanel 放在 JScrollPane 中,但 JPanel 没有出现。遇到这个问题后,我做了一个新的 java 项目来测试这个问题,问题仍然存在。 下面是测试项目的代码:
package exp;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class test {
public static void main(String[] args) {
JFrame f = new JFrame("test");
JScrollPane s = new JScrollPane();
JPanel p = new JPanel();
s.add(p);
f.add(s);
f.setVisible(true);
f.setSize(800, 600);
p.setBackground(Color.WHITE);
p.getGraphics().drawString("test", 50, 50);
}
}
这是它显示的内容:
JScrollPane s = new JScrollPane();
JPanel p = new JPanel();
s.add(p);
不要将组件直接添加到滚动窗格。该组件需要添加到滚动窗格的 viewport
中。您可以使用:
JPanel p = new JPanel();
JScrollPane s = new JScrollPane(p);
或
JPanel p = new JPanel();
JScrollPane s = new JScrollPane();
s.setViewportView( p );
不要使用getGraphics(...)
方法进行绘画:
// p.getGraphics().drawString("test", 50, 50);
您应该覆盖 JPanel
的 paintComponent()
方法并将面板添加到框架中。阅读有关 Custom Painting 的 Swing 教程部分,了解更多信息和工作示例。
将 link 本教程放在手边,以了解所有 Swing 基础知识。