我有一个工作JDialog
,现在我想为它添加滚动条。文档对我来说有点混乱。我是否将对话框添加到JScrollPane
或反之亦然?
似乎所有示例在对话框中都有JPanel
,并且面板可滚动。我有一个动态增长的对话框,所以我希望对话框本身可以滚动。有人能指出我正确的方向吗?
回复Andrew Thompson
感谢您的回复。
我让布局管理器确定大小。我还不确定它到底有多大,所以我没有设置任何尺寸。它随着我添加行而增长。这将是这一发展阶段的一部分。宽度不会改变,只是高度。我使用' invokelater'来显示对话框。这是相关的代码:
timeLineDialog = new JDialog();
timeLineDialog.setLayout(layout);
timeLineDialog.setModalityType(ModalityType.MODELESS);
timeLineDialog.setTitle("Time Line Settings");
timeLineDialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
.
.
.
timeLineDialog.pack();
timeLineDialog.setLocationRelativeTo(GUI.getInstance().getFrame());
timeLineDialog.setVisible(true);
我想要对话框窗格右侧的滚动条。
答案 0 :(得分:2)
我认为你必须创建一个JDialog,然后在其中添加一个JScrollPane和你的内容。以下代码对我有用:
import javax.swing.JDialog;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
import javax.swing.JLabel;
public class Dialog extends JDialog {
private final JScrollPane scrollPane = new JScrollPane();
//I added the breaks to the label below to be able to scroll down.
private final JLabel lblContent = new JLabel("<html><body><p>Content<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>Content<br><br><br><br><br><br>Content</p></body></html>");
public static void main(String[] args) {
Dialog dialog = new Dialog();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
}
public Dialog() {
setBounds(100, 100, 450, 300);
getContentPane().setLayout(new BorderLayout(0, 0));
getContentPane().add(scrollPane, BorderLayout.CENTER);
scrollPane.setViewportView(lblContent);
}
}
希望这有帮助。