2015-08-30 2 views
1

У меня есть проект, который будет показывать флажки через цикл. Моя проблема в том, что у меня есть JFrame, каждый раз, когда я запускаю его, флажки находятся в другом окне. Я хочу показать его на моем JFrame. Кто-нибудь, кто имеет представление о моей проблеме?Java динамически добавляет флажки во время выполнения

Скриншот: http://i.imgur.com/EuTFWkp.png

Вот мой код на добавление флажков динамически:

String title = (args.length == 0 ? "CheckBox Sample" : args[0]); 
    JFrame frame = new JFrame(title); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JPanel panel = new JPanel(new GridLayout(0, 1)); 
    Border border = BorderFactory.createTitledBorder("Test"); 
    panel.setBorder(border); 

    javax.swing.JCheckBox[] jCheckboxArray; 

    int CheckBoxNumber = 5; 
    jCheckboxArray = new javax.swing.JCheckBox[CheckBoxNumber]; 
    for(int x = 0; x < CheckBoxNumber ; x++) { 
     jCheckboxArray[x] = new javax.swing.JCheckBox(); 
     jCheckboxArray[x].setText("CheckBox " + x); 
     panel.add(jCheckboxArray[x]); 
    } 

    Container contentPane = frame.getContentPane(); 
    contentPane.add(panel, BorderLayout.CENTER); 
    //contentPane.add(button, BorderLayout.SOUTH); 
    frame.setSize(300, 200); 
    frame.setVisible(true); 

Вот мой полный код:

package Employees; 

import java.awt.BorderLayout; 
import java.awt.Checkbox; 
import java.awt.Container; 
import java.awt.GridLayout; 
import java.util.List; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.sql.ResultSet; 
import java.util.ArrayList; 
import javax.swing.BorderFactory; 
import javax.swing.JButton; 
import javax.swing.JCheckBox; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JRadioButton; 
import javax.swing.JTextField; 
import javax.swing.SwingConstants; 
import javax.swing.border.Border; 


public class Workers extends javax.swing.JFrame { 
Connection con; 
Statement stmt; 
ResultSet rs; 

    public Workers() { 
     initComponents(); 
     DoConnect(); 
    } 
    public void DoConnect(){ 
     try{ 
      String host = "jdbc:derby://localhost:1527/Employees"; 
      String uName = "cepe"; 
      String uPass = "admin"; 
      con = DriverManager.getConnection(host, uName, uPass); 

      stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 
      String sql = "SELECT * FROM Workers"; 
      rs = stmt.executeQuery(sql); 

      rs.next(); 
      int id_col = rs.getInt("ID"); 
      String id = Integer.toString(id_col); 
      String first = rs.getString("First_Name"); 
      String last = rs.getString("Last_Name"); 
      String job = rs.getString("Job_Title"); 

      textID.setText(id); 
      textFirstName.setText(first); 
      textLastName.setText(last); 
      textJobTitle.setText(job); 
     } 
     catch(SQLException err){ 
      JOptionPane.showMessageDialog(Workers.this, err.getMessage()); 
     } 
    } 

    /** 
    * This method is called from within the constructor to initialize the form. 
    * WARNING: Do NOT modify this code. The content of this method is always 
    * regenerated by the Form Editor. 
    */ 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jPanel1 = new javax.swing.JPanel(); 
     textID = new javax.swing.JTextField(); 
     textFirstName = new javax.swing.JTextField(); 
     textLastName = new javax.swing.JTextField(); 
     textJobTitle = new javax.swing.JTextField(); 
     jLabel1 = new javax.swing.JLabel(); 
     jButton1 = new javax.swing.JButton(); 
     jButton2 = new javax.swing.JButton(); 
     jButton3 = new javax.swing.JButton(); 
     jButton4 = new javax.swing.JButton(); 
     jPanel2 = new javax.swing.JPanel(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     jLabel1.setText("Job Title:"); 

     jButton1.setText("First"); 
     jButton1.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jButton1ActionPerformed(evt); 
      } 
     }); 

     jButton2.setText("Previous"); 
     jButton2.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jButton2ActionPerformed(evt); 
      } 
     }); 

     jButton3.setText("Next"); 
     jButton3.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jButton3ActionPerformed(evt); 
      } 
     }); 

     jButton4.setText("Last"); 
     jButton4.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       jButton4ActionPerformed(evt); 
      } 
     }); 

     javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
     jPanel1.setLayout(jPanel1Layout); 
     jPanel1Layout.setHorizontalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel1Layout.createSequentialGroup() 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(jPanel1Layout.createSequentialGroup() 
         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) 
          .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
          .addComponent(textID)) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
          .addGroup(jPanel1Layout.createSequentialGroup() 
           .addComponent(textFirstName, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE) 
           .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
           .addComponent(textLastName)) 
          .addComponent(textJobTitle))) 
        .addGroup(jPanel1Layout.createSequentialGroup() 
         .addGap(33, 33, 33) 
         .addComponent(jButton1) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jButton2) 
         .addGap(18, 18, 18) 
         .addComponent(jButton3) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(jButton4) 
         .addGap(0, 23, Short.MAX_VALUE))) 
       .addContainerGap()) 
     ); 
     jPanel1Layout.setVerticalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel1Layout.createSequentialGroup() 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) 
        .addComponent(textLastName, javax.swing.GroupLayout.DEFAULT_SIZE, 32, Short.MAX_VALUE) 
        .addComponent(textFirstName) 
        .addComponent(textID)) 
       .addGap(18, 18, 18) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(textJobTitle, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(jLabel1)) 
       .addGap(18, 18, 18) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(jButton1) 
        .addComponent(jButton2) 
        .addComponent(jButton3) 
        .addComponent(jButton4)) 
       .addGap(0, 13, Short.MAX_VALUE)) 
     ); 

     javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); 
     jPanel2.setLayout(jPanel2Layout); 
     jPanel2Layout.setHorizontalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGap(0, 100, Short.MAX_VALUE) 
     ); 
     jPanel2Layout.setVerticalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGap(0, 100, Short.MAX_VALUE) 
     ); 

     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(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addGroup(layout.createSequentialGroup() 
         .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
         .addGap(0, 0, Short.MAX_VALUE))) 
       .addContainerGap()) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addContainerGap() 
       .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
       .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(46, Short.MAX_VALUE)) 
     ); 

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

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {           
     try{ 
      if(rs.next()){ 
       int id_col = rs.getInt("ID"); 
       String id = Integer.toString(id_col); 
       String first = rs.getString("First_Name"); 
       String last = rs.getString("Last_Name"); 
       String job = rs.getString("Job_Title"); 

       textID.setText(id); 
       textFirstName.setText(first); 
       textLastName.setText(last); 
       textJobTitle.setText(job); 
      } 
      else{ 
       rs.previous(); 
       JOptionPane.showMessageDialog(Workers.this, "End of File"); 
      } 
     } 
     catch(SQLException err){ 
      JOptionPane.showMessageDialog(Workers.this, err.getMessage()); 
     } 
    }           

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
     try{ 
      if(rs.previous()){ 
       int id_col = rs.getInt("ID"); 
       String id = Integer.toString(id_col); 
       String first = rs.getString("First_Name"); 
       String last = rs.getString("Last_Name"); 
       String job = rs.getString("Job_Title"); 

       textID.setText(id); 
       textFirstName.setText(first); 
       textLastName.setText(last); 
       textJobTitle.setText(job); 
      } 
      else{ 
       rs.next(); 
       JOptionPane.showMessageDialog(Workers.this, "End of File"); 
      } 
     } 
     catch(SQLException err){ 
      JOptionPane.showMessageDialog(Workers.this, err.getMessage()); 
     } 
    }           

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     try{ 
      rs.first(); 
      int id_col = rs.getInt("ID"); 
      String id = Integer.toString(id_col); 
      String first = rs.getString("First_Name"); 
      String last = rs.getString("Last_Name"); 
      String job = rs.getString("Job_Title"); 

      textID.setText(id); 
      textFirstName.setText(first); 
      textLastName.setText(last); 
      textJobTitle.setText(job); 
     } 
     catch(SQLException err){ 
      JOptionPane.showMessageDialog(Workers.this, err.getMessage()); 
     } 
    }           

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {           
     try{ 
      rs.last(); 
      int id_col = rs.getInt("ID"); 
      String id = Integer.toString(id_col); 
      String first = rs.getString("First_Name"); 
      String last = rs.getString("Last_Name"); 
      String job = rs.getString("Job_Title"); 

      textID.setText(id); 
      textFirstName.setText(first); 
      textLastName.setText(last); 
      textJobTitle.setText(job); 
     } 
     catch(SQLException err){ 
      JOptionPane.showMessageDialog(Workers.this, err.getMessage()); 
     } 
    }           

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new Workers().setVisible(true); 
      } 
     }); 

      String title = (args.length == 0 ? "CheckBox Sample" : args[0]); 
      JFrame frame = new JFrame(title); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      JPanel panel = new JPanel(new GridLayout(0, 1)); 
      Border border = BorderFactory.createTitledBorder("Test"); 
      panel.setBorder(border); 

      javax.swing.JCheckBox[] jCheckboxArray; 

      int CheckBoxNumber = 5; 
      jCheckboxArray = new javax.swing.JCheckBox[CheckBoxNumber]; 
      for(int x = 0; x < CheckBoxNumber ; x++) { 
       jCheckboxArray[x] = new javax.swing.JCheckBox(); 
       jCheckboxArray[x].setText("CheckBox " + x); 
       panel.add(jCheckboxArray[x]); 
      } 

      Container contentPane = frame.getContentPane(); 
      contentPane.add(panel, BorderLayout.CENTER); 
      //contentPane.add(button, BorderLayout.SOUTH); 
      frame.setSize(300, 200); 
      frame.setVisible(true); 
    } 

    // Variables declaration - do not modify      
    private javax.swing.JButton jButton1; 
    private javax.swing.JButton jButton2; 
    private javax.swing.JButton jButton3; 
    private javax.swing.JButton jButton4; 
    private javax.swing.JLabel jLabel1; 
    private javax.swing.JPanel jPanel1; 
    private javax.swing.JPanel jPanel2; 
    private javax.swing.JTextField textFirstName; 
    private javax.swing.JTextField textID; 
    private javax.swing.JTextField textJobTitle; 
    private javax.swing.JTextField textLastName; 
    // End of variables declaration     
} 

ответ

0

код работает, как ожидалось. У вас есть два фрейма в вашем коде: Workers (который расширяет JFrame) создается в первом выражении (3-я строка) метода main, а созданный вами фрейм непосредственно в имени основного метода - только frame. Оба они отображаются при запуске программы.

Что вы, вероятно, захотите добавить свою панель с помощью флажков в рамку Workers. Вы можете сделать это, например, в конструкторе Workers, после initComponents() введите свой собственный код, помнящий, что фрейм, в котором вы работаете, составляет this специальную переменную (не создавайте другой фрейм). Вам нужно также учитывать уже существующие компоненты на этом фрейме, чтобы он выглядел хорошо, перемещение кода, скорее всего, будет недостаточным.

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