JFrame可滚动的HTML内容

时间:2015-02-14 16:08:48

标签: java html swing jframe scrollbar

我有一个显示HTML代码的修复高度JFrame,当HTML内容高度超过JFrame高度时,我希望它显示滚动条。我该怎么办?到目前为止我有这个代码:

public class Pupup extends JPanel {

  public Pupup() {
    setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS));

    String initialText = "<html>" +
      "<body>" +
      "</body>" +
      "</html>";

    theLabel = new JLabel(initialText) {
      public Dimension getPreferredSize() {
        return new Dimension(640, 480);
      }
      public Dimension getMinimumSize() {
        return new Dimension(640, 480);
      }
      public Dimension getMaximumSize() {
        return new Dimension(640, 480);
      }
    };

    theLabel.setVerticalAlignment(SwingConstants.TOP);
    theLabel.setHorizontalAlignment(SwingConstants.LEFT);

    JScrollPane pane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

    JPanel PANEL = new JPanel();
    PANEL.setLayout(new BoxLayout(PANEL, BoxLayout.PAGE_AXIS));
    PANEL.add(theLabel);
    PANEL.add(pane);
    add(PANEL);
  }
}

1 个答案:

答案 0 :(得分:0)

当您打算使用整个JFrame大小来显示html内容时,不应使用BoxLayout。

首先将HTML小部件放入JScrollPane。 然后将此JScrollPane添加为主面板中的唯一项目。您可以使用GridLayout(1,1)作为主面板。 然后做frame.setContentPane(mainPanel)。