@daniil14056

Почему не работает JScrollPane?

НЕ работает JScrollPane. Ползунок занимает всю область JPanel, и его не сдвинуть ни как, при этом все разваливается. И вообще, почему ни кто не придумал фреймворк, язык, препроцессор что бы писать на html+сss верстку (компановку). Или придумали, а то не знаю. А то я голову ломаю над одним элементом. На AngularJS в 20-30 строчек делаю то же, что на JAVA в 200-300 с сотней ошибок и постоянному Гуглению.

class PanelUser extends JPanel{
  public PanelUser(){
        panel =new JPanel();
        panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
        panel.setBorder(BorderFactory.createEmptyBorder(1,1,1,1));
        panel.setPreferredSize(new Dimension(width-12,200)); // все что уезжает за 200Пикс, не 
  // отображается, высота фиксируется а Срулл и не думает выполнять свою работу
        // panel.setSize(newDimension(width,200)); - panel растет вниз и становиться больше 200
      // а СРУЛЛ (ползунок) занимает всю эту область, от начала до конца и не сдвинуть. 
         scrl =new JScrollPane(panel
                   ,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS
                   ,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        scrl.setSize(width-4, 200);
        add(scrl);
}
//  Функция добавления текста в панель 
           public void addMessage(String name, String time, String text){
        JPanel pan =new JPanel();
        pan.setLayout(new BoxLayout(pan,BoxLayout.Y_AXIS)); 
        JLabel lblName =new JLabel(name);
    
        JLabel textField =new JLabel("<html><pre>  "+time+"<br><hr>"+text);
        pan.add(lblName);
        pan.add(textField);
        panel.add(pan);
    }}
//   в main вызов конструктора под JFrame и вызов addMessage(...) несколько раз. В итоге 
//   В итоге Скрул занимет всю  высоту 180пикс для panel.setPrefferedSize();(4 строчка)(при этом данные не попадают в область)  и 1000+ для panel.setSize(); и panel уходит вниз, при этом СКРУЛ ЗАНИМАЕТ всю эту область и его не сдвинуть.
//
  • Вопрос задан
  • 337 просмотров
Пригласить эксперта
Ответы на вопрос 1
@daniil14056 Автор вопроса
решение найдено. Нужно было для скрула задавать постоянный размер. scrl.setPrefferedSize(new Dimension(...)). Но вопрос с html в силе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы