2015-03-06 1 views
0

Я узнал о java уже некоторое время и даже купил несколько книг, чтобы помочь мне. Я сейчас нахожусь в точке моего путешествия, что хочу узнать о коллекциях. Я могу использовать списки массивов очень просто, но я хотел бы понять, как они работают при использовании в сочетании с J-переключателями и другими компонентами swing. Я работал над просмотром видеороликов YouTube и книг для чтения, таких как «Введение в Java-программирование - всеобъемлющий, 10E» и «Java в двух словах» (6-й E) O'Reilly », но я не нашел ответа на свою проблему. я могу получить предопределенную информацию для отображения в текстовой области J, используя следующий код отдельно. «Человек» вызывает второй класс, где у меня есть сеттеры и геттеры.Отображение элемента из коллекции с помощью кнопки Jradio

private void LuisActionPerformed(java.awt.event.ActionEvent evt) {          
    Person Luis = new Person("Luis ", "Peres\n", 1953); 
    Result.setText(String.valueOf(Luis)); 
} 

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

import java.util.*; 

public class FinalProject extends javax.swing.JFrame { 


    public FinalProject() { 
     initComponents(); 
    } 

    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     buttonGroup1 = new javax.swing.ButtonGroup(); 
     jScrollPane1 = new javax.swing.JScrollPane(); 
     DisplayText = new javax.swing.JTextArea(); 
     Exit = new javax.swing.JButton(); 
     ClearText = new javax.swing.JButton(); 
     jPanel1 = new javax.swing.JPanel(); 
     Maria = new javax.swing.JRadioButton(); 
     Jose = new javax.swing.JRadioButton(); 
     Josh = new javax.swing.JRadioButton(); 
     Dahn = new javax.swing.JRadioButton(); 
     Terry = new javax.swing.JRadioButton(); 
     Clark = new javax.swing.JRadioButton(); 
     Sasha = new javax.swing.JRadioButton(); 
     Paul = new javax.swing.JRadioButton(); 
     Irlen = new javax.swing.JRadioButton(); 
     Mary = new javax.swing.JRadioButton(); 
     Puttin = new javax.swing.JRadioButton(); 
     James = new javax.swing.JRadioButton(); 
     Jack = new javax.swing.JRadioButton(); 
     Mark = new javax.swing.JRadioButton(); 
     Jane = new javax.swing.JRadioButton(); 
     Sal = new javax.swing.JRadioButton(); 
     Perry = new javax.swing.JRadioButton(); 
     Charley = new javax.swing.JRadioButton(); 
     Anna = new javax.swing.JRadioButton(); 
     Bruce = new javax.swing.JRadioButton(); 

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

     DisplayText.setEditable(false); 
     DisplayText.setColumns(20); 
     DisplayText.setLineWrap(true); 
     DisplayText.setRows(5); 
     DisplayText.setWrapStyleWord(true); 
     jScrollPane1.setViewportView(DisplayText); 

     Exit.setText("Exit"); 
     Exit.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       ExitActionPerformed(evt); 
      } 
     }); 

     ClearText.setText("Clear Text"); 
     ClearText.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       ClearTextActionPerformed(evt); 
      } 
     }); 

     jPanel1.setBackground(new java.awt.Color(195, 205, 226)); 
     jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder(new java.awt.Color(153, 153, 255), new java.awt.Color(51, 51, 51))); 

     buttonGroup1.add(Maria); 
     Maria.setText("Maria"); 
     Maria.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       MariaActionPerformed(evt); 
      } 
     }); 

     buttonGroup1.add(Jose); 
     Jose.setText("Jose"); 
     Jose.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       JoseActionPerformed(evt); 
      } 
     }); 

     buttonGroup1.add(Josh); 
     Josh.setText("Josh"); 
     Josh.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       JoshActionPerformed(evt); 
      } 
     }); 

     buttonGroup1.add(Dahn); 
     Dahn.setText("Dahn"); 
     Dahn.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       DahnActionPerformed(evt); 
      } 
     }); 

     buttonGroup1.add(Terry); 
     Terry.setText("Terry"); 

     buttonGroup1.add(Clark); 
     Clark.setText("Clark"); 

     buttonGroup1.add(Sasha); 
     Sasha.setText("Sasha"); 

     buttonGroup1.add(Paul); 
     Paul.setText("Paul"); 

     buttonGroup1.add(Irlen); 
     Irlen.setText("Irlen"); 

     buttonGroup1.add(Mary); 
     Mary.setText("Mary"); 

     buttonGroup1.add(Puttin); 
     Puttin.setText("Puttin"); 

     buttonGroup1.add(James); 
     James.setText("James"); 

     buttonGroup1.add(Jack); 
     Jack.setText("Jack"); 

     buttonGroup1.add(Mark); 
     Mark.setText("Mark"); 

     buttonGroup1.add(Jane); 
     Jane.setText("Jane"); 

     buttonGroup1.add(Sal); 
     Sal.setText("Sal"); 

     buttonGroup1.add(Perry); 
     Perry.setText("Perry"); 

     buttonGroup1.add(Charley); 
     Charley.setText("Charley"); 

     buttonGroup1.add(Anna); 
     Anna.setText("Anna"); 

     buttonGroup1.add(Bruce); 
     Bruce.setText("Bruce"); 

     javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
     jPanel1.setLayout(jPanel1Layout); 
     jPanel1Layout.setHorizontalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel1Layout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(Perry) 
        .addComponent(Jack) 
        .addComponent(Irlen) 
        .addComponent(Terry) 
        .addComponent(Maria)) 
       .addGap(28, 28, 28) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(Charley) 
        .addComponent(Mark) 
        .addComponent(Jose) 
        .addComponent(Clark) 
        .addComponent(Mary)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 20, Short.MAX_VALUE) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(Anna) 
        .addComponent(Jane) 
        .addComponent(Puttin) 
        .addComponent(Sasha) 
        .addComponent(Josh)) 
       .addGap(18, 18, 18) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(Sal) 
        .addComponent(Paul) 
        .addComponent(James) 
        .addComponent(Dahn) 
        .addComponent(Bruce)) 
       .addGap(18, 18, 18)) 
     ); 
     jPanel1Layout.setVerticalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel1Layout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(Josh) 
        .addComponent(Dahn) 
        .addComponent(Jose) 
        .addComponent(Maria)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(Paul) 
        .addComponent(Sasha) 
        .addComponent(Clark) 
        .addComponent(Terry)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(James) 
        .addComponent(Puttin) 
        .addComponent(Mary) 
        .addComponent(Irlen)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(Sal) 
        .addComponent(Jane) 
        .addComponent(Jack) 
        .addComponent(Mark)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(Bruce) 
        .addComponent(Anna) 
        .addComponent(Charley) 
        .addComponent(Perry)) 
       .addContainerGap()) 
     ); 

     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.TRAILING) 
        .addGroup(layout.createSequentialGroup() 
         .addComponent(ClearText) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(Exit)) 
        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) 
         .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING) 
         .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) 
       .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(7, 7, 7) 
       .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addGap(18, 18, 18) 
       .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(Exit) 
        .addComponent(ClearText)) 
       .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
     ); 

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

    private void ExitActionPerformed(java.awt.event.ActionEvent evt) {          
     System.exit(0); 
    }          

    private void ClearTextActionPerformed(java.awt.event.ActionEvent evt) {           
     DisplayText.setText(""); 
    }           

    private void MariaActionPerformed(java.awt.event.ActionEvent evt) {          


    }          

    private void JoseActionPerformed(java.awt.event.ActionEvent evt) {          
     // TODO add your handling code here: 
    }          

    private void JoshActionPerformed(java.awt.event.ActionEvent evt) {          
     // TODO add your handling code here: 
    }          

    private void DahnActionPerformed(java.awt.event.ActionEvent evt) {          
     // TODO add your handling code here: 
    }          

    public static void main(String args[]) { 

     try { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
       if ("Nimbus".equals(info.getName())) { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (ClassNotFoundException ex) { 
      java.util.logging.Logger.getLogger(FinalProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(FinalProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(FinalProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(FinalProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     //</editor-fold> 

     /* Create and display the form */ 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new FinalProject().setVisible(true); 
      } 
     }); 
     // list where all user reside 
     List<Person> ml = new ArrayList<>(); 
     ml.add(new Person("Maria ", "Short\n", 2001)); 
     ml.add(new Person("Jose ", "White\n", 1980)); 
     ml.add(new Person("Josh ", "Brown\n", 1970)); 
     ml.add(new Person("Dahn ", "Lee\n", 1977)); 
     ml.add(new Person("Terry ", "Black\n", 1983)); 
     ml.add(new Person("Clark ", "Pale\n", 1999)); 
     ml.add(new Person("Sasha ", "Cole\n", 1989)); 
     ml.add(new Person("Paul ", "Chan\n", 1966)); 
     ml.add(new Person("Irlen ", "Bry\n", 1981)); 
     ml.add(new Person("Mary ", "Williams\n", 1975)); 
     ml.add(new Person("Puttin ", "Moreno\n", 1955)); 
     ml.add(new Person("James ", "Blanco\n", 1960)); 
     ml.add(new Person("Jack ", "Negro\n", 1963)); 
     ml.add(new Person("Mark ", "Torres\n", 1957)); 
     ml.add(new Person("Jane ", "Perez\n", 1995)); 
     ml.add(new Person("Sal ", "Salas\n", 1992)); 
     ml.add(new Person("Perry ", "Blah\n", 1973)); 
     ml.add(new Person("Charley ", "Nunca\n", 1996)); 
     ml.add(new Person("Anna ", "Cali\n", 2012)); 
     ml.add(new Person("Bruce ", "Cola\n", 2009)); 


    } 


    // Variables declaration - do not modify      
    private javax.swing.JRadioButton Anna; 
    private javax.swing.JRadioButton Bruce; 
    private javax.swing.JRadioButton Charley; 
    private javax.swing.JRadioButton Clark; 
    private javax.swing.JButton ClearText; 
    private javax.swing.JRadioButton Dahn; 
    private javax.swing.JTextArea DisplayText; 
    private javax.swing.JButton Exit; 
    private javax.swing.JRadioButton Irlen; 
    private javax.swing.JRadioButton Jack; 
    private javax.swing.JRadioButton James; 
    private javax.swing.JRadioButton Jane; 
    private javax.swing.JRadioButton Jose; 
    private javax.swing.JRadioButton Josh; 
    private javax.swing.JRadioButton Maria; 
    private javax.swing.JRadioButton Mark; 
    private javax.swing.JRadioButton Mary; 
    private javax.swing.JRadioButton Paul; 
    private javax.swing.JRadioButton Perry; 
    private javax.swing.JRadioButton Puttin; 
    private javax.swing.JRadioButton Sal; 
    private javax.swing.JRadioButton Sasha; 
    private javax.swing.JRadioButton Terry; 
    private javax.swing.ButtonGroup buttonGroup1; 
    private javax.swing.JPanel jPanel1; 
    private javax.swing.JScrollPane jScrollPane1; 
    // End of variables declaration     
} 

По сути то, что я хочу, чтобы пользователь, чтобы иметь возможность нажать на кнопку Jradio и предопределенные данные появляются в JTextArea. Вот альтернативный метод, над которым я работаю.

class Storage{ 
    Person Juan = new Person("Juan ", "Short\n", 2001); 
    Person Jose = new Person("Jose ", "White\n", 1980); 
    Person Josh = new Person("Josh ", "Brown\n", 1970); 
    Person Dahn = new Person("Dahn ", "Lee\n", 1977); 
    Person Terry = new Person("Terry ", "Black\n", 1983); 
    Person Clark = new Person("Clark ", "Pale\n", 1999); 
    Person Sasha = new Person("Sasha ", "Cole\n", 1989);   
    Person Paul = new Person("Paul ", "Chan\n", 1966); 
    Person Irlen = new Person("Irlen ", "Bry\n", 1981); 
    Person Mary = new Person("Mary ", "Williams\n", 1975); 
    Person Puttin = new Person("Puttin ", "Moreno\n", 1955); 
    Person James = new Person("James ", "Blanco\n", 1960); 
    Person Jack = new Person("Jack ", "Negro\n", 1963); 
    Person Mark = new Person("Mark ", "Torres\n", 1957); 
    Person Jane = new Person("Jane ", "Perez\n", 1995); 
    Person Sal = new Person("Sal ", "Salas\n", 1992); 
    Person Perry = new Person("Perry ", "Blah\n", 1973); 
    Person Charley = new Person("Charley ", "Nunca\n", 1996); 
    Person Anna = new Person("Anna ", "Cali\n", 2012); 
    Person Bruce = new Person("Bruce ", "Cola\n", 2009); 

    List<Person> ml = new ArrayList<>(); 

    protected Storage(){ 
     ml.add(Juan); 

     ml.add(Jose); // and so on.. 

Но опять-таки я не могу понять, как подключить мой Jradio кнопку предустановленные данные, так что, когда пользователь нажимает на кнопку радио информационные дисплеи в JTextArea.

+0

Почему вы не можете заменить 'Result.setText (String.valueOf (Luis))' с 'ml.add (Luis)'? Но вы должны проверить выбранное состояние «JRadioButton» ... – MadProgrammer

+0

1) Для лучшей помощи скорее отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE ] (http://www.sscce.org/) (Short, Self Contained, Correct Example). 2) В этом беспорядке слов нет '?'. У вас есть вопрос? Если да, можете ли вы (добавить его и) добавить вопросительный знак в качестве [редактирования вопроса] (http://stackoverflow.com/posts/28892805/edit)? 3) Пожалуйста, изучите общую номенклатуру Java (соглашения об именах - например, 'EveryWordUpperCaseClass',' firstWordLowerCaseMethod() ',' firstWordLowerCaseAttribute', если это не 'UPPER_CASE_CONSTANT') и использовать ее последовательно –

+0

Чтобы ответить на ваш вопрос, когда я помещаю« ml.add (Хуан), «в области« Выполненные действия »я получаю две ошибки: 1) Не удается найти символ: переменная мл, местоположение: FinalProject 2) Невозможно найти символ: переменная Хуан, местоположение: FinalProject Я не могу понять, как это получить работать –

ответ

1

Прежде всего имена переменных не должны начинаться с символа верхнего регистра. Я сомневаюсь, что в вашем учебнике O'Rielly используются символы верхнего регистра.

Вместо того чтобы хранить ваш объект Person в ArrayList вы можете хранить затем в HashMap:

HashMap<String, Person> people = new HashMap<String, Person>(); 
people.put("Juan", new Person("Juan ", "Short\n", 2001)); 
people.put("Jose", new Person("Jose ", "White\n", 1980)); 

Теперь вы можете написать общую ActionListener для совместного использования всех радиокнопок:

ActionListener al = new ActionListener() 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
     String command = e.getActionCommand(); 
     Person person = people.get(command); 
    } 
}; 

После того, как у вас есть объект Person, вы можете отобразить данные из Person в текстовой области.

Кроме того, вы не должны создавать кнопки по одному. Вместо этого создайте Array (или ArrayList) имена, которые вы хотите использовать, а затем выполните итерацию по массиву. Что-то вроде:

String[] names = 
{ 
    "Juan", 
    "Jose" 
}; 

for (String name: names) 
{ 
    JRadioButton button = new JRadioButton(name); 
    button.addActionListener(al); 
    panel.add(button); 
} 
+0

Прежде всего, я хотел бы извиниться за то, что тратил ваше время, но это было не мое намерение. объект Person в «Person Luis = new Person (« Luis »,« Peres \ n », 1953);» относится к классу, где у меня есть мои сеттеры и геттеры. Опять я сожалею о том, что трачу ваше время –

+0

@AbrahamEsparza, я знаю. Когда у вас есть объект Person, вы можете использовать метод getName() getter, чтобы получить имя человека и отобразить имя в текстовой области. – camickr

+0

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