我已经有一个带有按钮和文本字段的JInternalFrame
,但现在我想在此内部框架中添加JScrollPane
,我不知道该怎么做。
可以添加JScrollPane
而无需再次将所有组件添加到JInternalFrame
?怎么样?
谢谢!
我已使用NetBeans,设计视图添加了按钮和文本字段。
答案 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,......任何地方!