Как добавить новую вкладку в JTabbedPane с помощью JTextArea - PullRequest
0 голосов
/ 14 мая 2019

Я хочу создать новые вкладки в tabbedpane при нажатии новой опции. Но новая вкладка должна включать панель с текстовой областью в том же положении, что и на первой вкладке, которую я создал с помощью перетаскивания в NetBeans. Я создаю одну вкладку и хочу новый экземпляр этой вкладки, как другие вкладки, как я могу это сделать?

Я создаю приложение блокнота и хочу добавить функциональность новых файлов в виде вкладок в tabbedpane. Я создал одну вкладку с помощью перетаскивания в NetBeans. но я не знаю, как использовать этот экземпляр в новой вкладке при нажатии новой опции.

//This is the code to create new panel but it is not working 
int i= 1;
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt)
{                                           
    JPanel jp = new JPanel();
    jp = jPanel1; // jPanel1 is the panel created by drag and drop.
    // i cantains text area.
    jTabbedPane1.addTab("untitled"+i,jp);   
    i++;
}   

Я хочу, чтобы приложение создавало новые вкладки в виде вкладок, созданных в NetBeans или Dev и т. Д.

Ответы [ 2 ]

0 голосов
/ 16 мая 2019
 JPanel jp1 = new JPanel();
   JTextArea ta1 = new JTextArea();  
   ta1.setBounds(10, 10,100 , 100);
   jp1.add(ta1);

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jp1);
   jp1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(   jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(ta1, javax.swing.GroupLayout.DEFAULT_SIZE, 501, Short.MAX_VALUE));

    jPanel1Layout.setVerticalGroup(         jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(ta1, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE));
    jTabbedPane1.addTab("untitled",jp1);

// это правильный ответ на мой вопрос, это способ передать текстовую область с панелью в области вкладок

0 голосов
/ 14 мая 2019
jp = jPanel1; // jPanel1 is the panel created by drag and drop.

Вы не можете поделиться компонентами.У компонентов Swing может быть только один родитель.

Так что вам нужно создать новый экземпляр JPanel и новый экземпляр JTextArea.

JTextArea textArea = new JTextArea(5, 20);
JPanel panel = new JPanel( new BorderLaout() );
panel.add( textArea );
jTabbedPane1.addTab("untitled"+i, panel);  

Теперь текстовая область заполнит доступное пространствона панели с вкладками.

Вам не требуется JPanel, если все, что вам нужно, это текстовая область на вкладке.Просто добавьте новую текстовую область на панель с вкладками.

...