2011-12-22 2 views
1

NetBeans에서 JDialog를 디자인 중이며 코드를 다시 사용하고 싶습니다. 기본적으로 3 개의 탭이있는 JTabbedPane이 있습니다. 3 개의 탭에는 각각 JTable가있어, 3 개의 JTables는 모두 같은 구조입니다. NetBeans는 각 JTable에 대해 새로운 코드를 생성하고 있습니다. NetBeans에서 동일한 코드를 재사용 할 수있는 방법이 있습니까? NetBeans 및 JDialog 코드 재사용 방법은 무엇입니까?

내가 가지고있는 GUI 코드 :

private void initComponents() { 

    jlPacket = new javax.swing.JLabel(); 
    jtpPacket = new javax.swing.JTabbedPane(); 
    jpInputs = new javax.swing.JPanel(); 
    jScrollPane1 = new javax.swing.JScrollPane(); 
    jtblInputs = new javax.swing.JTable(); 
    jpOutputs = new javax.swing.JPanel(); 
    jScrollPane2 = new javax.swing.JScrollPane(); 
    jtblOutputs = new javax.swing.JTable(); 
    jPanel3 = new javax.swing.JPanel(); 
    jbSavePacketConfiguration = new javax.swing.JButton(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 
    setResizable(false); 

    jlPacket.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N 
    jlPacket.setText("Packet Configuration"); 

    jtpPacket.setBackground(new java.awt.Color(255, 255, 255)); 
    jtpPacket.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N 

    jpInputs.setBackground(new java.awt.Color(255, 255, 255)); 

    jtblInputs.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N 
    jtblInputs.setModel(new javax.swing.table.DefaultTableModel(
     new Object [][] { 

     }, 
     new String [] { 
      "Group", "Start Address", "End Address" 
     } 
    ) { 
     boolean[] canEdit = new boolean [] { 
      false, true, true 
     }; 

     public boolean isCellEditable(int rowIndex, int columnIndex) { 
      return canEdit [columnIndex]; 
     } 
    }); 
    jtblInputs.setSelectionBackground(new java.awt.Color(204, 255, 204)); 
    jtblInputs.setSelectionForeground(new java.awt.Color(0, 0, 0)); 
    jtblInputs.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION); 
    jtblInputs.getTableHeader().setReorderingAllowed(false); 
    jScrollPane1.setViewportView(jtblInputs); 
    jtblInputs.getColumnModel().getColumn(0).setResizable(false); 
    jtblInputs.getColumnModel().getColumn(1).setResizable(false); 
    jtblInputs.getColumnModel().getColumn(2).setResizable(false); 

    javax.swing.GroupLayout jpInputsLayout = new javax.swing.GroupLayout(jpInputs); 
    jpInputs.setLayout(jpInputsLayout); 
    jpInputsLayout.setHorizontalGroup(
     jpInputsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jpInputsLayout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 275, Short.MAX_VALUE) 
      .addContainerGap()) 
    ); 
    jpInputsLayout.setVerticalGroup(
     jpInputsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(jpInputsLayout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 283, Short.MAX_VALUE) 
      .addContainerGap()) 
    ); 

    jtpPacket.addTab("Inputs", jpInputs); 

    jpOutputs.setBackground(new java.awt.Color(255, 255, 255)); 
    jpOutputs.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N 

    jtblOutputs.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N 
    jtblOutputs.setModel(new javax.swing.table.DefaultTableModel(
     new Object [][] { 

     }, 
     new String [] { 
      "Group", "Start Address", "End Address" 
     } 
    ) { 
     boolean[] canEdit = new boolean [] { 
      false, true, true 
     }; 

     public boolean isCellEditable(int rowIndex, int columnIndex) { 
      return canEdit [columnIndex]; 
     } 
    }); 
    jtblOutputs.setSelectionBackground(new java.awt.Color(204, 255, 204)); 
    jtblOutputs.setSelectionForeground(new java.awt.Color(0, 0, 0)); 
    jtblOutputs.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_INTERVAL_SELECTION); 
    jtblOutputs.getTableHeader().setReorderingAllowed(false); 
    jScrollPane2.setViewportView(jtblOutputs); 
    jtblOutputs.getColumnModel().getColumn(0).setResizable(false); 
    jtblOutputs.getColumnModel().getColumn(1).setResizable(false); 
    jtblOutputs.getColumnModel().getColumn(2).setResizable(false); 

    javax.swing.GroupLayout jpOutputsLayout = new javax.swing.GroupLayout(jpOutputs); 
    jpOutputs.setLayout(jpOutputsLayout); 
    jpOutputsLayout.setHorizontalGroup(
     jpOutputsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 295, Short.MAX_VALUE) 
     .addGroup(jpOutputsLayout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 275, Short.MAX_VALUE) 
      .addContainerGap()) 
    ); 
    jpOutputsLayout.setVerticalGroup(
     jpOutputsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 305, Short.MAX_VALUE) 
     .addGroup(jpOutputsLayout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 283, Short.MAX_VALUE) 
      .addContainerGap()) 
    ); 

    jtpPacket.addTab("Outputs", jpOutputs); 

    jPanel3.setBackground(new java.awt.Color(255, 255, 255)); 
    jPanel3.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N 

    javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); 
    jPanel3.setLayout(jPanel3Layout); 
    jPanel3Layout.setHorizontalGroup(
     jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 295, Short.MAX_VALUE) 
    ); 
    jPanel3Layout.setVerticalGroup(
     jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGap(0, 305, Short.MAX_VALUE) 
    ); 

    jtpPacket.addTab("Outputs", jPanel3); 

    jbSavePacketConfiguration.setBackground(new java.awt.Color(255, 255, 255)); 
    jbSavePacketConfiguration.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N 
    jbSavePacketConfiguration.setText("Save Packet Configuration"); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addContainerGap() 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addComponent(jtpPacket, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE) 
       .addComponent(jlPacket) 
       .addComponent(jbSavePacketConfiguration)) 
      .addContainerGap()) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addContainerGap() 
      .addComponent(jlPacket) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
      .addComponent(jtpPacket, javax.swing.GroupLayout.PREFERRED_SIZE, 334, javax.swing.GroupLayout.PREFERRED_SIZE) 
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
      .addComponent(jbSavePacketConfiguration) 
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
    ); 

    pack(); 
}// </editor-fold> 
+1

이어야합니다. Jtable을 매개 변수로 사용하여 호출 된 함수에? 내 말은, 이건 정말 간단 해. – Sheriff

+0

나는 그것을 시도했지만 생성 된 코드에서 jpOutputsLayout 및 jPanel3Layout에 add하는 방법을 알지 못했다. addComponent (jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 283, Short.MAX_VALUE) – jadrijan

답변

3

1) 변화 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

  • DO_NOTHING_ON_CLOSE 아무 일도 발생하지 않습니다, 당신은 setVisible(false);

또는

    를 호출해야,
  • HIDE_ON_CLOSE

2)이 JPanel를 넣어, 그것을 f.e. 전화 이 fatherPanel-fatherPanel

3

)은 다시 동일하거나 JComponents

6) 마지막으로 또 다른 JPanel 새로운 내용을) 둥지 당신의 JComponent에이

4) 내용 fatherPanel.removeAll();

5를 제거하는 것이 다른 JPanel를 추가 추가 코드 줄은

fatherPanel.add(myPanel); 
fatherPanel.revalidate(); 
fatherPanel.repaint();//sometimes required