- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码有问题。我目前正在制作一个在 ArrayList 上存储临时数据的项目。我已经创建了代码,但是当我测试它时,ArrayList
中的 add() 方法似乎不起作用。我在 jTable
上显示 ArrayList
,但它始终返回空,即使 add()
方法给出成功通知。
我在这里阅读了另一种解决方案,但没有一个适合我的问题。这是我的代码。我有 3 类
Input.java
package latihan;
import com.sun.xml.internal.ws.developer.JAXWSProperties;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author anang
*/
public class Input extends javax.swing.JFrame {
Latihan latihan = new Latihan();
/**
* Creates new form Input
*/
public Input() {
initComponents();
}
private void btnKirimActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String nik = txtNIK.getText();
String lap = txtLaporan.getText();
try {
latihan.addLaporan(nik,lap);
JOptionPane.showMessageDialog(null,"Berhasil");
Tabel t = new Tabel();
t.setVisible(true);
this.setVisible(false);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,e);
}
}
public ArrayList<String[]> getLaporan(){
ArrayList<String[]> arr = latihan.getLaporan();
return arr;
}
}
第二课Latihan.java
package latihan;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class Latihan {
private ArrayList<String[]> lap = new ArrayList<String[]>();
public static void main(String[] args) {
}
public ArrayList<String[]> getLaporan(){
return this.lap;
}
public void addLaporan(String Nik, String Lap){
String[] data = new String[]{Nik,Lap};
JOptionPane.showMessageDialog(null,"Data yang diinputkan = "+Nik+" "+Lap, "Latihan.java",JOptionPane.INFORMATION_MESSAGE);
this.lap.add(data);
}
}
第三节课Tabel.java
package latihan;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author anang
*/
public class Tabel extends javax.swing.JFrame {
//Input i = new Input();
private Input input;
public Tabel() {
initComponents();
addDataToTable();
}
private void btnTambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
input.setVisible(true);
this.setVisible(false);
}
public void addDataToTable(){
DefaultTableModel tbModel = (DefaultTableModel) jTable1.getModel();
tbModel.setRowCount(0);
ArrayList<String[]> arr = input.getLaporan();
Object rowData[] = new Object[2];
JOptionPane.showMessageDialog(null,"Jumlah data : "+arr.size());
for(int i=0;i<arr.size();i++){
JOptionPane.showMessageDialog(null,arr.get(0)[0]);
rowData[0] = arr.get(i)[0];
rowData[1] = arr.get(i)[1];
tbModel.addRow(rowData);
}
}
}
我的代码有什么问题吗?有人可以帮我吗?
谢谢
最佳答案
所以你的JOptionPane
的原因未使用您的 ArrayList
中的值进行更新是因为你的ArrayList
是空的。 add()
方法工作正常,这是您的实现不正确。
在 addDataToTable()
当您调用ArrayList<String[]> arr = input.getLaporan();
时它将去获取 ArrayList
存储在您的 Input
Tabel
的实例的类实例(...拼写...)。 Input
的此实例您正在调用的实例与您创建的实例完全不同 Tabel
例如,因为在你的 Tabel
中你实例化了一个新的类 Input
。因此ArrayList
您正在检索的内容将是空白的,因为 Tabel
实例中没有任何地方已运行任何调用 add 方法的代码。
感到困惑吗?本质上,这是一个与您的堆栈以及如何调用类有关的问题:
要尝试展示同一类中的变量如何根据实例而有所不同,您可以运行以下示例:
import java.util.ArrayList;
public class MyListClass {
private ArrayList<String> list = new ArrayList<>();
private static ArrayList<String> staticList = new ArrayList<>();
public MyListClass(int instance) {
for(int i = 0; i < instance; i++) {
list.add(instance + ":" +i);
staticList.add(instance + ":" +i);
}
}
public ArrayList<String> getList() {
return list;
}
public ArrayList<String> getStaticListList() {
return staticList;
}
}
public class MyInstanceClass {
private int instance;
private MyListClass listClass;
public MyInstanceClass(int instance) {
this.instance = instance;
listClass = new MyListClass(instance);
}
public void showMeWhatYourListLooksLike() {
System.out.println(String.format("For instance %d, the list has the following info: %s", instance, listClass.getList().toString()));
}
public void showMeWhatYourStaticListLooksLike() {
System.out.println(String.format("For instance %d, the STATIC list has the following info: %s", instance, listClass.getStaticListList().toString()));
}
public void createAnotherInstance() {
MyInstanceClass anotherInstance = new MyInstanceClass(30);
anotherInstance.showMeWhatYourListLooksLike();
}
}
public class MyMainClass {
public static void main(String...args) {
MyInstanceClass myInstanceClass01 = new MyInstanceClass(1);
MyInstanceClass myInstanceClass05 = new MyInstanceClass(5);
MyInstanceClass myInstanceClass10 = new MyInstanceClass(10);
myInstanceClass01.showMeWhatYourListLooksLike();
myInstanceClass05.showMeWhatYourListLooksLike();
myInstanceClass10.showMeWhatYourListLooksLike();
myInstanceClass01.showMeWhatYourStaticListLooksLike();
myInstanceClass05.showMeWhatYourStaticListLooksLike();
myInstanceClass10.showMeWhatYourStaticListLooksLike();
myInstanceClass10.createAnotherInstance();
}
}
...请注意,对于每个实例,MyInstanceClass
当您调用showMeWhatYourListLooksLike()
时打印出的列表有所不同,但是调用 showMeWhatYourStaticListLooksLike()
时打印出的列表是一样的。那是因为static
列表在所有实例之间共享 MyListClass
(这样想……当某个东西是 static
时,只能有一个)。
...您还会注意到创建 MyInstanceClass
的另一个实例时会发生什么里面myInstanceClass10
.
所以要解决您眼前的问题。而不是创建一个新的 Input
Tabel
中的对象,只需传递您的 Latihan
实例化时对象 Tabel
并直接从该对象调用列表。
public class Input extends javax.swing.JFrame {
Latihan latihan = new Latihan();
public Input() {
initComponents();
}
private void btnKirimActionPerformed(java.awt.event.ActionEvent evt) {
...
try {
...
Tabel t = new Tabel(latihan);
...
} catch (Exception e) {
JOptionPane.showMessageDialog(null,e);
}
}
}
public class Tabel extends javax.swing.JFrame {
public Tabel(Latihan latihan) {
...
addDataToTable(latihan);
}
public void addDataToTable(Latihan latihan){
...
ArrayList<String[]> arr = latihan.getLaporan();
...
}
}
关于java - ArrayList add() 方法不起作用。无法添加另一个值并将其添加到 jTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58913287/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!