2009-11-11 6 views
0

Я новичок в программировании GUI для Java. Я добавляю панель JEditor (с текстом HTML) внутри JScrollPane и добавляет панель прокрутки в JFrame. Проблема заключается в том, когда я изменяю размер рамки, на которой исчезает панель JEditor.Проблема с панелью JEditor при изменении размера кадра

Помогите мне?

Привет,

Ниже приводится код:

здесь другая проблема я установить weightx и весомое для панели .Но еще панель JEditor не изменение размера, когда кадр максимизируется/mimized

общественного класса GridBagWithJEditorPane расширяет javax.swing.JFrame {

public GridBagWithJEditorPane() { 
    initComponents(); 
} 

private void initComponents() { 
    java.awt.GridBagConstraints gridBagConstraints; 

    Panel1 = new javax.swing.JPanel(); 
    Button1 = new javax.swing.JButton(); 
    Label = new javax.swing.JLabel(); 
    Panel2 = new javax.swing.JPanel(); 
    ScrollPane = new javax.swing.JScrollPane(); 
    EditorPane1 = new javax.swing.JEditorPane(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
    getContentPane().setLayout(new java.awt.GridBagLayout()); 

    Panel1.setLayout(new java.awt.GridBagLayout()); 

    Button1.setText("Button"); 
    Panel1.add(Button1, new java.awt.GridBagConstraints()); 

    Label.setText("Label"); 
    Panel1.add(Label, new java.awt.GridBagConstraints()); 

    gridBagConstraints = new java.awt.GridBagConstraints(); 
    gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 
    getContentPane().add(Panel1, gridBagConstraints); 

    Panel2.setLayout(new java.awt.GridBagLayout()); 

    ScrollPane.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 

    EditorPane1.setContentType("text/html"); 
    EditorPane1.setText("<html>\r\n <head>\r\n\r\n </head>\r\n <body>\r\n <p style=\"margin-top: 0\">\r\n  \rHere some html text sakdjslakdjsa dksa dsakjdklsajdklsad klsajd lksad<br>\n  asdka;slkd;laskd;sa dlksa dksa dksald;lsakd;lsakd;l ska;dl sal;dk;salkd<br>\n  asas;alks;laKSL;Kalk ALSKLAks;laSAsLAKS;Lk;slk<br>\t\n alsdasldk;alskd;laskd;l sadksa;dlksa;ldk;saldk;alsd<br>\n </p>\r\n </body>\r\n</html>\r\n"); 
    EditorPane1.setMinimumSize(new java.awt.Dimension(15, 15)); 
    EditorPane1.setPreferredSize(new java.awt.Dimension(340, 220)); 
    ScrollPane.setViewportView(EditorPane1); 

    gridBagConstraints = new java.awt.GridBagConstraints(); 
    gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 
    gridBagConstraints.weightx = 1.0; 
    gridBagConstraints.weighty = 1.0; 
    Panel2.add(ScrollPane, gridBagConstraints); 

    gridBagConstraints = new java.awt.GridBagConstraints(); 
    gridBagConstraints.gridx = 0; 
    gridBagConstraints.gridy = 1; 
    gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 
    getContentPane().add(Panel2, gridBagConstraints); 

    pack(); 
} 

public static void main(String args[]) { 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new GridBagWithJEditorPane().setVisible(true); 
     } 
    }); 
} 


private javax.swing.JButton Button1; 
private javax.swing.JEditorPane EditorPane1; 
private javax.swing.JLabel Label; 
private javax.swing.JPanel Panel1; 
private javax.swing.JPanel Panel2; 
private javax.swing.JScrollPane ScrollPane; 

}

+1

Вы можете оставить некоторый связанный код .... трудный tohelp без этого :) –

+0

уверен я вставить код .. – Sidharth

+0

привет Сурадж .. я добавил код, приведенный выше .. – Sidharth

ответ

0

сам решил проблему. Решения такого же, как и в

resize problem with JList?

+0

Я дал вам ответ за 5 часов до того, как вы, по-видимому, решили проблему самостоятельно. – camickr

0

Малый рабочий пример. Покажите нам код еще мы не сможем сказать, где ваша проблема лежит

import javax.swing.*; 
public class Test { 
    public static void main (String args[]) { 
    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
     JFrame frame = new JFrame("JScrollPane+JEditorPane"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.add(new JScrollPane(new JEditorPane())); 
     frame.pack(); 
     frame.setVisible(true); 
     } 
    }); 
    } 
} 
+0

ya it work .. bbut Я использую layoutbag layout. Попробуйте вставить код. – Sidharth

+0

привет Jitter ..i добавил код выше – Sidharth

0

Проблема заключается в установке значения weightX/Y для панели прокрутки, а не панели.

Почему вы добавляете панель прокрутки на панель и затем добавляете панель в рамку? Панель не нужна.

+0

hi camickr ... у меня есть ограничение, как будто мне нужно добавить scrollpane на панель, а затем добавить его в фрейм .. все еще у меня проблема .. как решить ? – Sidharth

+0

Я дал вам ответ. На самом деле я дал вам два предложения.Если вы хотите получить 3-е предложение, тогда прислушайтесь к советам, которые вы получили ранее, и у вас более подходящая комбинация менеджеров макетов. Нет необходимости в гнезде GrigBagLayouts. Другие менеджеры макетов проще в использовании и понимании. – camickr

0

Предлагаю не использовать GridBagLayout. Есть много более современных менеджеров компоновки (MiGLayout, FormLayout, SpringLayout ...), и в этом отношении вы почти всегда можете получить то, что хотите, просто вложенным JPanels с BorderLayouts. Это также облегчит диагностику ваших макетов ,

Серьезно, я программировал на Java с 1995 года и с Swing с 1998 года, и я никогда не удосужился правильно изучить GridBagLayout. Это просто не стоит усилий.

+0

приведенные выше макеты являются обычными, или они присутствуют в самом jdk? – Sidharth

+0

SpringLayout находится в JDK начиная с Java 1.4. –

+0

(И BorderLayout был в Swing навсегда.) –

Смежные вопросы