Java 更新gui二进制数组列表

Java 更新gui二进制数组列表,java,user-interface,arraylist,binary,Java,User Interface,Arraylist,Binary,该程序的目标是将二进制文件读入arraylist,然后在gui窗口中显示它。有5个索引,我使用curIndex来更新它。我认为我的问题在于refreshUI()。我不能让它更新为新的索引。我也不知道如何设置刷新中的字段。如果你能给我指出正确的方向,那就太棒了!多谢各位 ArrayList<SalesAgent> salesForce = new ArrayList<>(); int curIndex = 0; public RecordViewerPanel() th

该程序的目标是将二进制文件读入arraylist,然后在gui窗口中显示它。有5个索引,我使用curIndex来更新它。我认为我的问题在于refreshUI()。我不能让它更新为新的索引。我也不知道如何设置刷新中的字段。如果你能给我指出正确的方向,那就太棒了!多谢各位

 ArrayList<SalesAgent> salesForce = new ArrayList<>();
int curIndex = 0;

public RecordViewerPanel() throws ClassNotFoundException, IOException {
    initComponents();
    ObjectInputStream input = new ObjectInputStream(
            new BufferedInputStream(
                    new FileInputStream("sales.bin")));

    while (curIndex < 5) {

        String first = input.readUTF();
        String last = input.readUTF();
        double sales = input.readDouble();
        Date date = (Date) input.readObject();
        salesForce.add(new SalesAgent(first, last, sales, date));
        refreshUI();
    }


}

private void refreshUI() {
salesForce.get(curIndex);
lastTextField.setText(salesForce.getLast());
salesTextField.setText(String.valueOf(salesForce.getSales()));
dateTextField.setText(String.valueOf(salesForce.getDate()));

    jPanel2.repaint();
    curIndex++;

}

/**
 * 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")


    nextButton.setText(">>");
    nextButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            nextButtonActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
    jPanel2.setLayout(jPanel2Layout);
    jPanel2Layout.setHorizontalGroup(
        jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel2Layout.createSequentialGroup()
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                .addGroup(jPanel2Layout.createSequentialGroup()
                    .addGap(24, 24, 24)
                    .addComponent(firstTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(26, 26, 26)
                    .addComponent(lastTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addComponent(salesTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(26, 26, 26)
                    .addComponent(dateTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 134, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(64, 64, 64))
                .addGroup(jPanel2Layout.createSequentialGroup()
                    .addGap(39, 39, 39)
                    .addComponent(jLabel3)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel2Layout.createSequentialGroup()
                            .addGap(31, 31, 31)
                            .addComponent(jLabel4)
                            .addGap(70, 70, 70)
                            .addComponent(jLabel5)
                            .addGap(101, 101, 101)
                            .addComponent(jLabel6))
                        .addGroup(jPanel2Layout.createSequentialGroup()
                            .addGap(254, 254, 254)
                            .addComponent(previousButton)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(nextButton)))))
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );
    jPanel2Layout.setVerticalGroup(
        jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel2Layout.createSequentialGroup()
            .addGap(29, 29, 29)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabel3)
                .addComponent(jLabel4)
                .addComponent(jLabel5)
                .addComponent(jLabel6))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(firstTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(lastTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(salesTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addComponent(dateTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(previousButton)
                .addComponent(nextButton)))
    );

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
    this.setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
            .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .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))
    );
}// </editor-fold>                        

private void previousButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
    if (curIndex > 0) {
        curIndex--;
    } else if (curIndex == 0) {
        curIndex = 4;
    }
    salesForce.get(curIndex);
    refreshUI();
}                                              

private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
    if (curIndex < 4) {
        curIndex++;
    } else if (curIndex == 4) {
        curIndex = 0;
    }
    salesForce.get(curIndex);
    refreshUI();
} 
ArrayList salesForce=new ArrayList();
int-curIndex=0;
public RecordViewerPanel()抛出ClassNotFoundException,IOException{
初始化组件();
ObjectInputStream输入=新ObjectInputStream(
新的BufferedInputStream(
新文件输入流(“sales.bin”);
while(curIndex<5){
String first=input.readUTF();
字符串last=input.readUTF();
double sales=input.readDouble();
Date Date=(Date)input.readObject();
添加(新的SalesAgent(第一个、最后一个、销售、日期));
refreshUI();
}
}
私有void refreshUI(){
salesForce.get(curIndex);
setText(salesForce.getLast());
salesTextField.setText(String.valueOf(salesForce.getSales());
dateTextField.setText(String.valueOf(salesForce.getDate());
jPanel2.repaint();
curIndex++;
}
/**
*从构造函数中调用此方法来初始化表单。
*警告:请勿修改此代码。此方法的内容始终是
*由表单编辑器重新生成。
*/
@抑制警告(“未选中”)
nextButton.setText(“>>”);
addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
执行下一个按钮操作(evt);
}
});
javax.swing.GroupLayout jPanel2Layout=新的javax.swing.GroupLayout(jPanel2);
设置布局(jPanel2布局);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,false)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(24,24,24)
.addComponent(第一个文本字段,javax.swing.GroupLayout.PREFERRED\u大小,javax.swing.GroupLayout.DEFAULT\u大小,javax.swing.GroupLayout.PREFERRED\u大小)
.addGap(26,26,26)
.addComponent(lastTextField,javax.swing.GroupLayout.PREFERRED\u SIZE,javax.swing.GroupLayout.DEFAULT\u SIZE,javax.swing.GroupLayout.PREFERRED\u SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(salesTextField、javax.swing.GroupLayout.PREFERRED\u SIZE、javax.swing.GroupLayout.DEFAULT\u SIZE、javax.swing.GroupLayout.PREFERRED\u SIZE)
.addGap(26,26,26)
.addComponent(dateTextField,javax.swing.GroupLayout.PREFERRED_SIZE,134,javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(64,64,64))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(39,39,39)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,javax.swing.GroupLayout.DEFAULT\u SIZE,Short.MAX\u值)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(31,31,31)
.addComponent(jLabel4)
.addGap(70,70,70)
.addComponent(jLabel5)
.addGap(101、101、101)
.addComponent(jLabel6))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(254,254,254)
.addComponent(上一个按钮)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(下一个按钮‘‘‘)’)
.addContainerGap(javax.swing.GroupLayout.DEFAULT\u SIZE,Short.MAX\u VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(29,29,29)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(第一个文本字段,javax.swing.GroupLayout.PREFERRED\u大小,javax.swing.GroupLayout.DEFAULT\u大小,javax.swing.GroupLayout.PREFERRED\u大小)
.addComponent(lastTextField,javax.swing.GroupLayout.PREFERRED\u SIZE,javax.swing.GroupLayout.DEFAULT\u SIZE,javax.swing.GroupLayout.PREFERRED\u SIZE)
.addComponent(salesTextField、javax.swing.GroupLayout.PREFERRED\u SIZE、javax.swing.GroupLayout.DEFAULT\u SIZE、javax.swing.GroupLayout.PREFERRED\u SIZE))
.addComponent(dateTextField,javax.swing.GroupLayout.PREFERRED_SIZE,28,javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,javax.swing.GroupLayout.DEFAULT\u SIZE,Short.MAX\u值)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(上一个按钮)
.addComponent(下一个按钮
private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
    if (curIndex < 4) {
        curIndex++;
    } else if (curIndex == 4) {
        curIndex = 0;
    }
    salesForce.get(curIndex);
    refreshUI();
} 
private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) { 
  curIndex++;
  curIndex %= salesForce.size(); // mod it by size of your List
  currentSalesAgent = salesForce.get(curIndex);
  // salesForce.get(curIndex); // this throws out the result returned by get(...)
  refreshUI();
} 
private SalesAgent currentSalesAgent;
currentSalesAgent = salesForce.get(curIndex);
// salesTextField.setText(String.valueOf(salesForce.getSales())); // this shouldn't compile!
salesTextField.setText(String.valueOf(currentSalesAgent.getSales()));
salesForce.getSales()
ArrayList<SalesAgent> salesForce = new ArrayList<>();
lastTextField.setText(salesForce.getLast());
salesTextField.setText(String.valueOf(salesForce.getSales()));
dateTextField.setText(String.valueOf(salesForce.getDate()));