Ну, у меня JDIalog уже работает. Преобразование это в JPanel большое дело?

я есть работа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);

Я хочу полосы прокрутки на правой стороне диалогового окна.

 MadProgrammer11 дек. 2017 г., 22:33
Я очень рекомендую, чтобы вы нашли время, чтобы посмотреть наJTable
 Wt Riker19 дек. 2017 г., 14:33
После экспериментов с JTable я обнаружил, что это не подходит для моего приложения. Слишком много вещей, которые я не могу с этим сделать. Например, я не могу охватить столбцы (без расширенного кода), и даже если я реализую это, у меня не будет прокручиваемого заголовка, если он занимает 2 строки.
 Wt Riker15 дек. 2017 г., 15:18
Благодарю. Ты прав. К сожалению, эта вещь развивалась, а не была разработана. В какой-то момент я могу решить полностью переписать, но мне нужно получить то, что у меня сейчас работает.
 Andrew Thompson11 дек. 2017 г., 15:33
«Я добавляю JDialog в JScrollPane или наоборот?» Ни. Вместо этого добавьте основную панель (вещи, которые необходимо прокрутить) диалогового окна на панель прокрутки, затем добавьте панель прокрутки в диалоговое окно.«У меня есть диалоговое окно, которое динамически растет, поэтому я хочу, чтобы само диалоговое окно можно было прокручивать». Я не понимаю, что вы имеете в виду. Предоставить ASCII искусство или простой рисунокпредназначены макет графического интерфейса с минимальным размером, с большей шириной и высотой - чтобы показать, как следует использовать дополнительное пространство / где должны появляться полосы прокрутки.

Ответы на вопрос(1)

что вы должны создать 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);

    }
}

Надеюсь это поможет.

 Wt Riker14 дек. 2017 г., 16:10
Ну, у меня JDIalog уже работает. Преобразование это в JPanel большое дело?
 Wt Riker11 дек. 2017 г., 16:00
Ах, это имеет смысл для меня. То, что сейчас является JDialog, следует изменить на JScrollPane, а затем добавить его в JDialog. Благодарю.
 David H13 дек. 2017 г., 15:10
Как насчет добавления JPanel и добавления контента к этому? Я думаю, что прокрутка будет работать, если панель больше, чем ScrollPane.
 Wt Riker11 дек. 2017 г., 16:28
Хм, думая об этом больше, мне вообще нужен JDialog? Не будет ли работать ScrollPane сам по себе?
 Wt Riker13 дек. 2017 г., 14:40
Я думаю, я понял это. Ваш пример работал, потому что вы добавили 1 компонент. Я обнаружил, что в JScollPane можно добавить только один компонент, поэтому JDialog необходимо добавить на панель прокрутки в качестве отдельного компонента. Мне нужно поработать над этим, чтобы я еще не пробовал.

Ваш ответ на вопрос