- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法理解为什么这段代码不起作用,下面是我尝试调用 JTable 上的单元格值的代码中的一个方法。单击该行时,代码会获取该行并使用该行中的信息,并使用该行中的信息填充 JTextBox。调试器没有帮助,因为它只指向第一个 getValueAt() 并将其称为 NullPointerException。
private void editInfoButtonActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("Opening 'Edit Info' window.");
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new editPatientDialogBox().setVisible(true);
}
});
editPatientDialogBox.roomNumberField.setText(bedboard.patientInfoTable.getValueAt(bedboard.patientInfoTable.getSelectedRow(),0).toString());
editPatientDialogBox.nameField.setText(bedboard.patientInfoTable.getValueAt(bedboard.patientInfoTable.getSelectedRow(),1).toString());
editPatientDialogBox.genderField.setSelectedItem(bedboard.patientInfoTable.getValueAt(bedboard.patientInfoTable.getSelectedRow(),2).toString());
editPatientDialogBox.dateAdmittedField.setText(bedboard.patientInfoTable.getValueAt(bedboard.patientInfoTable.getSelectedRow(),3).toString());
editPatientDialogBox.ageField.setText(bedboard.patientInfoTable.getValueAt(bedboard.patientInfoTable.getSelectedRow(),4).toString());
editPatientDialogBox.isolationField.setSelectedItem(bedboard.patientInfoTable.getValueAt(bedboard.patientInfoTable.getSelectedRow(),5).toString())
这是它正在调用的类本身
public class editPatientDialogBox extends javax.swing.JFrame {
public editPatientDialogBox() {
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
roomNumberField = new javax.swing.JTextField();
roomNumberLabel = new javax.swing.JLabel();
nameField = new javax.swing.JTextField();
nameLabel = new javax.swing.JLabel();
genderField = new javax.swing.JComboBox();
genderLabel = new javax.swing.JLabel();
acceptButton = new javax.swing.JButton();
isolationField = new javax.swing.JComboBox();
isolationLabel = new javax.swing.JLabel();
ageField = new javax.swing.JTextField();
dateAdmittedField = new javax.swing.JTextField();
cancelButton = new javax.swing.JButton();
dateAdmittedLabel = new javax.swing.JLabel();
ageLabel = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
roomNumberLabel.setText("Room Number");
nameLabel.setText("Patient Name");
genderField.setMaximumRowCount(2);
genderField.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Male", "Female" }));
genderLabel.setText("Gender");
acceptButton.setText("Accept");
acceptButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
acceptButtonActionPerformed(evt);
}
});
isolationField.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Yes", "No" }));
isolationLabel.setText("Isolation");
ageField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
ageFieldActionPerformed(evt);
}
});
dateAdmittedField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
dateAdmittedFieldActionPerformed(evt);
}
});
cancelButton.setText("Cancel");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
dateAdmittedLabel.setText("Date Admitted (YYYY/MM/DD)");
ageLabel.setText("Date of Birth (YYYY/MM/DD)");
private void acceptButtonActionPerformed(java.awt.event.ActionEvent evt) {
if(bedboard.patientInfoTable.getValueAt(bedboard.patientInfoTable.getSelectedRow(),bedboard.patientInfoTable.getSelectedRow()) == null)
{
System.out.println("None selected, try again.");
}
else
{
String get = null;
info.setRoom(roomNumberField.getText());
info.setPatientName(nameField.getText());
info.setGender(genderField.getSelectedItem().toString());
info.setDateAd(dateAdmittedField.getText());
info.setAge(ageField.getText());
info.setIso(isolationField.getSelectedItem().toString());
setVisible(false);
System.out.println("*********************************************************************************************");
System.out.println("REVISED PATIENT");
System.out.println("Patient Name: " + nameField.getText());
System.out.println("Room Number: " + roomNumberField.getText());
System.out.println("Gender: " + genderField.getSelectedItem());
System.out.println("Date Admitted: " + dateAdmittedField.getText());
System.out.println("Age: " + ageField.getText());
System.out.println("Isolation: " + isolationField.getSelectedItem());
System.out.println("*********************************************************************************************");
bedboard.setValue(info.getRoom(get),bedboard.patientInfoTable.getSelectedRow(),0);
bedboard.setValue(info.getPatientName(get),bedboard.patientInfoTable.getSelectedRow(),1);
bedboard.setValue(info.getGender(get),bedboard.patientInfoTable.getSelectedRow(),2);
bedboard.setValue(info.getDateAd(get),bedboard.patientInfoTable.getSelectedRow(),3);
bedboard.setValue(info.getAge(get),bedboard.patientInfoTable.getSelectedRow(),4);
bedboard.setValue(info.getIso(get),bedboard.patientInfoTable.getSelectedRow(),5);
}
}
private void ageFieldActionPerformed(java.awt.event.ActionEvent evt) {
}
private void dateAdmittedFieldActionPerformed(java.awt.event.ActionEvent evt) {
}
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("Revise patient canceled.");
setVisible(false);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
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(editPatientDialogBox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(editPatientDialogBox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(editPatientDialogBox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(editPatientDialogBox.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new editPatientDialogBox().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton acceptButton;
public static javax.swing.JTextField ageField;
private javax.swing.JLabel ageLabel;
private javax.swing.JButton cancelButton;
public static javax.swing.JTextField dateAdmittedField;
private javax.swing.JLabel dateAdmittedLabel;
public static javax.swing.JComboBox genderField;
private javax.swing.JLabel genderLabel;
public static javax.swing.JComboBox isolationField;
private javax.swing.JLabel isolationLabel;
public static javax.swing.JTextField nameField;
private javax.swing.JLabel nameLabel;
public static javax.swing.JTextField roomNumberField;
private javax.swing.JLabel roomNumberLabel;
// End of variables declaration
}
说实话,我不知道该怎么办。如果您需要更多信息,请评论
最佳答案
为什么使用invokeLater(...)
???
该方法将代码添加到事件调度线程的末尾,这意味着它在所有 setText() 语句之后执行。摆脱invokeLater()。
此外,editPatientDialogBox
变量在哪里初始化。您的代码仅调用 new EditPatientDialogBox()
但不会将创建的对象分配给任何变量。
我希望代码应该是:
EditPatientDialogBox editPatiendDialogBox = new EditPatientDialogBox(); // note the capital "E" of the class name.
editPatientDialogBox.roomNumberField.setText(bedboard.patientInfoTable.getValueAt(bedboard.patientInfoTable.getSelectedRow(),0).toString());
...
editPatientDialogBox.setVisible(true);
此外,类名称应以大写字符开头。修正你的类(class)名称。
关于java - setText()、setSelectedItem()、getValueAt() 和 getSelectedRow() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35557568/
我编写了一个小程序,它使用JTable(在本例中为t1)并实现ListSelectionListener,因此通过单击一行,其中的数据将被放入数据库中(我使用mysql并通过JDBC连接)。 //
当我向 JTable 添加值并执行该方法的保存操作时,它就会被执行。问题是,当我在 JTable 中输入单个值(例如 "TEST")时,getValueAt(1,0) 返回 empty .当我输入两个
我正在实现一个包含大量数据的swing jtable,我希望在数据模型中的getValueAt时刻加载数据并在单元格中打印“Loading”并稍后返回数据,我不想在 UI 线程中执行查询。有什么想法吗
我知道它返回类型为Object,有没有办法将类型更改为最合适的类型?例如,它查看单元格,如果是 float ,则更改为浮点型,字符串更改为字符串类型等等。 编辑 好吧,单元格位于 jtable 中,我
我有一个 JXTreeTable,它的左侧有一棵节点树(不同的数据类型),右侧有一个网格(默认)。 现在我希望所有显示的值(还有树标题)均取自 getValueAt(row,column) 方法,而不
我试图将 defaulttablemodel 的所有值保存到我的 sql 数据库中,但每当我尝试通过 table.valueAt() 打印最后插入行上的值时,它都会返回 null。 try{
我的 JTable 从 AbstractTableModel 调用 getValueAt() 的频率如何? 如果我在 getValueAt() 中进行大量计算(例如,计算多项式的值),这是否正常?我应
我想知道为什么我的 getvalueAt() 在按下 Enter 时会选择旧数据。 我尝试了所有更新和表更改模块,但无法使其工作。我正在 JTable 中制作一个类似于 Excel 工作表的结构,其中
我是JTable的新手,也许我不明白一些东西。 假设我有 1000 名学生(id、name、surname、age)的 ArrayList。我想在 JTable 中显示所有学生。据我了解,我必须创建扩
我有一个带有使用 DefaultTableModel 的 JTable 的 GUI。 声明了这些实例变量: boolean doRun = false; Class clazz; Object oby
当我想从表中获取单元格值(在使用过滤进行搜索后)并选择该行并执行 returnAction() 时,会发生异常。 我的代码: public class BookPage_User extends JF
我需要扩展 AbstractTableModel 来表示表中的一些数据。我有一个类 Car ,它应该代表表中的一项(行): public class Car implements Comparable
我的问题出在这段代码中: int rowToTable = table.getSelectedRow(); int bookId = (int)table.getValueAt(rowToTable,
有没有一种方法可以从完整的 AbstractTableModel 派生出经过修剪的 AbstractTableModel 而无需 getValueAt() 复杂性? 我的完整数据(包括 userIds
我正在尝试制作一个程序,使用 AbstractTableModel 显示临时文件夹中的所有文件,但如何编写 getValueAt() 方法的代码。文件名应位于第一列,文件路径应位于第二列。我暂时将其取
我需要有关 getValue 方法的帮助 我从文件中读取并将值存储在 public List students; 现在我想将所有这些值添加到我的 JTable @Override publ
我有一个带有四个卡片面板的 Java 应用程序。在第一个面板中,我接收第一个地理点的数据,在第二个和第三个地理点中接收其他两个点的数据,在第四个面板中,我有一个 JTable 显示有关这三个点的提取信
本文整理了Java中com.tc.admin.common.XObjectTableModel.getValueAt()方法的一些代码示例,展示了XObjectTableModel.getValueA
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 7 年前。 我无法理解为什么这段代码不起作用
如何隐藏 JTable 中的列,以便仍然可以使用 tableModel.getValueAt(row,colHidden) 访问它们? 我这样做了,但后来我无法使用tableModel.getValu
我是一名优秀的程序员,十分优秀!