Java 滚动窗格未显示在JLabel上
当我运行这个程序时,我在标签上看不到滚动条。我错过了什么Java 滚动窗格未显示在JLabel上,java,swing,jscrollpane,jlabel,Java,Swing,Jscrollpane,Jlabel,当我运行这个程序时,我在标签上看不到滚动条。我错过了什么 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Util1 { public static void main(String[] args) { new Util1(); } public Util1() { EventQueue.invokeLater(
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Util1
{
public static void main(String[] args)
{
new Util1();
}
public Util1()
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new ExamplePane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
protected class ExamplePane extends JPanel
{
public ExamplePane()
{
final JPanel panel = new JPanel(new GridBagLayout());
final JLabel message = new JLabel("<html>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello</html>");
message.setPreferredSize(new Dimension(500, 50));
JScrollPane scroller = new JScrollPane( message, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroller.setViewportView(message);
panel.add(scroller);
add(panel);
}
}
}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
公共类Util1
{
公共静态void main(字符串[]args)
{
新Util1();
}
公共服务1()
{
invokeLater(新的Runnable()
{
公开募捐
{
JFrame=新JFrame(“测试”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(新的BorderLayout());
frame.add(新的ExamplePane());
frame.pack();
frame.setLocationRelativeTo(空);
frame.setVisible(true);
}
});
}
受保护类ExamplePane扩展了JPanel
{
公共示例窗格()
{
最终JPanel面板=新JPanel(新GridBagLayout());
最终JLabel消息=新JLabel(“你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好”);
message.setPreferredSize(新维度(500,50));
JScrollPane scroller=新的JScrollPane(消息,JScrollPane.VERTICAL\u SCROLLBAR\u AS\u NEEDED,JScrollPane.HORIZONTAL\u SCROLLBAR\u NEEDED);
scroller.setViewportView(消息);
面板。添加(滚动条);
添加(面板);
}
}
}
要查看滚动条,请将“消息”JLabel包装到JPanel中,然后将此JPanel添加到JScrollPane,如下图所示:
public ExamplePane() {
final JPanel panel = new JPanel(new GridBagLayout());
final JLabel message = new JLabel("<html>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello</html>");
message.setPreferredSize(new Dimension(500, 50));
final JPanel messagePanel = new JPanel();
messagePanel.add(message);
JScrollPane scroller = new JScrollPane(messagePanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroller.setPreferredSize(new Dimension(100, 50));
panel.add(scroller);
add(panel);
}
public示例窗格(){
最终JPanel面板=新JPanel(新GridBagLayout());
最终JLabel消息=新JLabel(“你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好”);
message.setPreferredSize(新维度(500,50));
final JPanel messagePanel=new JPanel();
messagePanel.add(消息);
JScrollPane scroller=新的JScrollPane(messagePanel,JScrollPane.VERTICAL\u SCROLLBAR\u AS\u NEEDED,JScrollPane.HORIZONTAL\u SCROLLBAR\u NEEDED);
scroller.setPreferredSize(新尺寸(100,50));
面板。添加(滚动条);
添加(面板);
}
要查看滚动条,请将“消息”JLabel包装到JPanel中,然后将此JPanel添加到JScrollPane,如下图所示:
public ExamplePane() {
final JPanel panel = new JPanel(new GridBagLayout());
final JLabel message = new JLabel("<html>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello</html>");
message.setPreferredSize(new Dimension(500, 50));
final JPanel messagePanel = new JPanel();
messagePanel.add(message);
JScrollPane scroller = new JScrollPane(messagePanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroller.setPreferredSize(new Dimension(100, 50));
panel.add(scroller);
add(panel);
}
public示例窗格(){
最终JPanel面板=新JPanel(新GridBagLayout());
最终JLabel消息=新JLabel(“你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好”);
message.setPreferredSize(新维度(500,50));
final JPanel messagePanel=new JPanel();
messagePanel.add(消息);
JScrollPane scroller=新的JScrollPane(messagePanel,JScrollPane.VERTICAL\u SCROLLBAR\u AS\u NEEDED,JScrollPane.HORIZONTAL\u SCROLLBAR\u NEEDED);
scroller.setPreferredSize(新尺寸(100,50));
面板。添加(滚动条);
添加(面板);
}
要查看滚动条,请将“消息”JLabel包装到JPanel中,然后将此JPanel添加到JScrollPane,如下图所示:
public ExamplePane() {
final JPanel panel = new JPanel(new GridBagLayout());
final JLabel message = new JLabel("<html>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello</html>");
message.setPreferredSize(new Dimension(500, 50));
final JPanel messagePanel = new JPanel();
messagePanel.add(message);
JScrollPane scroller = new JScrollPane(messagePanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroller.setPreferredSize(new Dimension(100, 50));
panel.add(scroller);
add(panel);
}
public示例窗格(){
最终JPanel面板=新JPanel(新GridBagLayout());
最终JLabel消息=新JLabel(“你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好”);
message.setPreferredSize(新维度(500,50));
final JPanel messagePanel=new JPanel();
messagePanel.add(消息);
JScrollPane scroller=新的JScrollPane(messagePanel,JScrollPane.VERTICAL\u SCROLLBAR\u AS\u NEEDED,JScrollPane.HORIZONTAL\u SCROLLBAR\u NEEDED);
scroller.setPreferredSize(新尺寸(100,50));
面板。添加(滚动条);
添加(面板);
}
要查看滚动条,请将“消息”JLabel包装到JPanel中,然后将此JPanel添加到JScrollPane,如下图所示:
public ExamplePane() {
final JPanel panel = new JPanel(new GridBagLayout());
final JLabel message = new JLabel("<html>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello<br>Hello</html>");
message.setPreferredSize(new Dimension(500, 50));
final JPanel messagePanel = new JPanel();
messagePanel.add(message);
JScrollPane scroller = new JScrollPane(messagePanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroller.setPreferredSize(new Dimension(100, 50));
panel.add(scroller);
add(panel);
}
public示例窗格(){
最终JPanel面板=新JPanel(新GridBagLayout());
最终JLabel消息=新JLabel(“你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好
你好”);
message.setPreferredSize(新维度(500,50));
final JPanel messagePanel=new JPanel();
messagePanel.add(消息);
JScrollPane scroller=新的JScrollPane(messagePanel,JScrollPane.VERTICAL\u SCROLLBAR\u AS\u NEEDED,JScrollPane.HORIZONTAL\u SCROLLBAR\u NEEDED);
scroller.setPreferredSize(新尺寸(100,50));
面板。添加(滚动条);
添加(面板);
}
此消息。setPreferredSize
是更改布局管理器的错误开始。我拿出面板
并将ExamplePane
的布局管理器设置为BorderLayout
,我想是html造成的。也许这里的第一个答案有帮助:@MadProgrammer-删除setPreferredSize并没有改变任何东西。@MadProgrammer-滚动窗格在GridbagLayout中不可用。我已将此代码从一个较大的代码中缩小-不可能更改为BorderLayoutThis消息。setPreferredSize
是一个错误的开始更改布局管理器。我拿出面板
并将ExamplePane
的布局管理器设置为BorderLayout
,我想是html造成的。也许这里的第一个答案有帮助:@MadProgrammer-删除setPreferredSize并没有改变任何东西。@MadProgrammer-滚动窗格在GridbagLayout中不可用。我已将此代码从一个较大的代码中缩小-不可能更改为BorderLayoutThis消息。setPreferredSize
是一个错误的开始更改布局管理器。我拿出面板
并将ExamplePane
的布局管理器设置为BorderLayout
,我想是html造成的。也许这里的第一个答案有帮助:@MadProgrammer-删除setPreferredSize并没有改变任何东西。@MadProgrammer-滚动窗格在GridbagLayout中不可用。我已经从一家更大的公司缩小了这个代码的范围