2013-11-26 21 views
1

我對Java相當陌生,最近一直在使用NetBeans創建GUI。我遇到的問題是,我試圖根據選定的組合框選擇將信息填充到文本框。我想填寫的信息比組合框中的要多得多,所以我正在考慮用一個數字(用於生成信息的arraylist中的位置)開始組合框信息,然後嘗試利用所述信息數字以便生成所有的字段。我使用了兩個數組:第一個數組是存儲所有信息的數組列表。第二個是陣列列表,它是位置編號(0+)學生編號,姓氏和名字的組合。第一個字符是數字,我認爲要利用它來從第一個數組中找到信息,如設計時生成一個,另一個是。但是,嘗試使用此按鈕會遇到許多問題。我一直在尋求幫助,試圖讓這個工作或更好的方法來實現這一點。謝謝,如果使用的概念很奇怪,我很抱歉,我對編碼方法很陌生。試圖從使用Java的組合框生成文本框字段

private void btnGenerateFieldsActionPerformed(java.awt.event.ActionEvent evt) 
{             
     String x = String.valueOf(cbStudentPayrollList.getSelectedItem()); 
     char c = x.charAt(0); 
     tbAptNo.setText(nameList.get(c).findApt()); 
     tbCity.setText(nameList.get(c).findCity()); 
     tbFirstName.setText(nameList.get(c).findFirstName()); 
     tbHourlyWage.setText(""+nameList.get(c).findHourlyWage()); 
     tbHoursWorked.setText(""+nameList.get(c).findHoursWorked()); 
     tbLastName.setText(nameList.get(c).findLastName()); 
     tbState.setText(nameList.get(c).findState()); 
     tbStreetAddress.setText(nameList.get(c).findAddress()); 
     tbStudentID.setText(""+nameList.get(c).findID()); 
     tbZipCode.setText(""+nameList.get(c).findZipCode()); 
    } 

堆棧跟蹤:

在異常線程 「AWT-EventQueue的-0」 java.lang.IndexOutOfBoundsException:索引:49,尺寸:2 在java.util.ArrayList.rangeCheck(ArrayList.java: 604) 在java.util.ArrayList.get(ArrayList.java:382) 在StudentPayrollGUI.btnGenerateFieldsActionPerformed(StudentPayrollGUI.java:642) 在StudentPayrollGUI.access $ 2400(StudentPayrollGUI.java:14) 在StudentPayrollGUI $ 25.actionPerformed( StudentPayrollGUI.java:446) at javax.swing.AbstractButton.fireActionPer形成(AbstractButton.java:2018) 在javax.swing.AbstractButton中$ Handler.actionPerformed(AbstractButton.java:2341) 在javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 在javax.swing.DefaultButtonModel中。 setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at javax.swing上的java.awt.Component.processMouseEvent(Component.java:6505) 。 JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component。 dispatchEventImpl(Component.java:4861) at java.aw t.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt。 LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window。 dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729) at java.awt.EventQueue.access $ 200 (EventQueue.java:103) at java.awt.EventQueue $ 3.run(EventQueue.java:688)java.security.ProtectionDomain上的$ 3.run(EventQueue.java:686) (在java.security.AccessController.doPrivileged(本機方法)上) 在java中的$ 1.doIntersectionPrivilege(ProtectionDomain.java:76) .security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue $ 4.run(EventQueue.java:702) at java.awt.EventQueue $ 4.run(EventQueue.java:700) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain $ 1。doIntersectionPrivilege(ProtectionDomain.java:76) 在java.awt.EventQueue.dispatchEvent(EventQueue.java:699) 在java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 在java.awt.EventDispatchThread.pumpEventsForFilter( EventDispatchThread.java:161) 在java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread。 java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

+0

你能說出你的'issue'的衆多看看How to use combo boxesProviding a custom renderer? – Smit

+0

請勿將您的堆棧跟蹤發佈到評論部分。您可以使用您發佈的問題下的「編輯」鏈接編輯「Post」。在那裏進行編輯。 ANd它看起來像你試圖訪問不存在於'ArrayList'中的元素拋出'IndexOutOfBoundsException' – Smit

回答

0

本質上,你正在使用面向對象的語言。這意味着您應該考慮如何將自己包含的工作單元(對象)中所需的信息封裝起來。

不是試圖將組合框中的值鏈接到數組,而是實際上應將這些對象直接添加到組合框中,並利用組合框的呈現功能在組合框中顯示對象的詳細信息您希望顯示的方式。

採取特別