gpt4 book ai didi

java - 将 JScrollPane 添加到 JDialog

转载 作者:行者123 更新时间:2023-12-02 02:25:59 24 4
gpt4 key购买 nike

我有一个正在运行的JDialog,现在我想向它添加滚动条。该文档对我来说有点困惑。我是否将对话框添加到 JScrollPane 中,还是反之亦然?

似乎所有示例的对话框中都有一个 JPanel 并且该面板是可滚动的。我有一个动态增长的对话框,因此我希望对话框本身可以滚动。有人能指出我正确的方向吗?

回复安德鲁·汤普森

感谢您的回复。

此时我让布局管理器确定大小。我还不确定要让它变得多大,所以我还没有设置任何尺寸。当我添加行时它就会增长。这将是该开发阶段的一部分。宽度不会改变,只会改变高度。我使用“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);

enter image description here

我希望滚动条位于对话框 Pane 的右侧。

最佳答案

我认为您必须创建一个 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);

}
}

How it looks

希望这有帮助。

关于java - 将 JScrollPane 添加到 JDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47755063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com