如何将JScrollPane添加到JInternalFrame?

时间:2014-03-28 21:00:39

标签: java swing jinternalframe

我已经有一个带有按钮和文本字段的JInternalFrame,但现在我想在此内部框架中添加JScrollPane,我不知道该怎么做。

可以添加JScrollPane而无需再次将所有组件添加到JInternalFrame?怎么样?

谢谢!

我已使用NetBeans,设计视图添加了按钮和文本字段。

1 个答案:

答案 0 :(得分:4)

创建JScrollPane并将JPanel添加到其视口,然后将其添加到JInternalFrame的一个非常基本的示例:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class AddStuffToScrollPane {
   public static void main(String[] args) {
      JPanel panel = new JPanel(new BorderLayout());
      panel.add(new JTextArea(20, 30), BorderLayout.CENTER);
      panel.add(new JPanel(new GridLayout(1, 0)) {
         {
            add(new JButton("Foo"));
            add(new JButton("Bar"));
         }
      }, BorderLayout.PAGE_END);
      JScrollPane scrollPane = new JScrollPane(panel);

      JInternalFrame internalFrame = new JInternalFrame("InternalFrame", true,
            true);
      internalFrame.getContentPane().add(scrollPane);
      internalFrame.setPreferredSize(new Dimension(200, 200));
      internalFrame.setSize(internalFrame.getPreferredSize());
      internalFrame.setVisible(true);
      JDesktopPane desktopPane = new JDesktopPane();
      desktopPane.setPreferredSize(new Dimension(400, 400));
      desktopPane.add(internalFrame);
      JOptionPane.showMessageDialog(null, desktopPane);
   }
}

如果你什么都不做的话,你应该得到的最重要的回家信息:将你的GUI类设置为创建JPanels,而不是JFrames,而不是JInternalFrames。如果你可以创建一个像样的JPanel,那么你可以把它放在任何需要的地方:JFrame,JInternalFrame,或JScrollPane,......任何地方!