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