点击新选项后,我想在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等中创建的标签一样创建新的标签。
答案 0 :(得分:0)
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。只需将新的文本区域添加到选项卡式窗格即可。
答案 1 :(得分:0)
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);
//这是我的问题的正确答案,这是通过选项卡式窗格中的面板传递文本区域的方法