У меня уже есть JInternalFrame
с кнопками и текстовыми полями, но теперь я хочу добавить JScrollPane
к этому внутреннему JScrollPane
, и я не знаю, как это сделать.
Можно добавить JScrollPane
без добавления всех компонентов в JInternalFrame
? Как?
Благодарю!!
Я добавил кнопки и поля текстов в NetBeans, Design view.
Очень простой пример создания 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,... где угодно!