- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试设计一个用户界面,允许用户将包含人员信息的文件加载到系统中,然后访问有关单个人员的信息。我有一个方法 getpersons 从 ArrayList 获取信息并创建一个对象 PersonList。 ArrayList 是通过从 .txt 文件读取有关人员的信息来生成的。 PersonList 再次包含单个 Person 对象。现在我创建了一个 JButton,并在 EventListener 方法中调用第一个方法。因此,基本上,单击按钮后,我的程序就会读取文件并创建一个对象 PersonList。然后我想循环访问 PersonList 对象并将 person 对象添加到 jlist 中。单击 J 列表中的对象后,我想在 JTextArea 中显示 person 对象中包含的信息。现在我的第一个想法是将 person 对象直接传递到 Jlist。但我不知道如何让我的 JList 接受我的特定人员对象。
person 类看起来有点像这样:
public class Person
{
private String personname;
private String personage;
private String personaddress;
.....
}
我的 JButton 代码是这样的
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
ArrayList<String> personlist = readFile("data/persons.txt");
PersonList persons = getpersons(personlist);
for(int i = 0; i < persons.getsize(); i++)
{
JList.addItem(persons.getperson(i));
}
}
另一个想法是简单地显示人名,它是 Jlist 中的字符串。然后我会将用户在 Jlist 中单击的姓名与 PersonList 对象中我的人员进行比较,并在文本区域中显示相应人员的信息。但这需要我从私有(private)(且不能更改为公共(public))的 jButton1ActionPerformed 方法中获取 PersonList 对象,并将其传递给 JListActionPerformed 方法。任何帮助,将不胜感激我不确定这是否是一个好方法。如果您有更好的方法来做到这一点的建议,我也很高兴。
最佳答案
Then I would like to loop through the PersonList object and add person objects to the jlist.
您可以只在 JTable
中显示 Person
对象。然后您可以在不同的列中显示有关 Person
的所有信息。您需要为此创建一个自定义 TableModel。
查看Table Row Model有关如何完成此操作的示例。
But I don't know how to get my JList to accept my specific person objects.
您可以将任何对象添加到 JList
使用的 ListModel
中,因此您可以将 Person
对象添加到 JList
与将 String
添加到 JList
的方式相同。
JList
使用渲染器来显示列表中的对象。默认渲染器仅调用对象的 toString() 方法来获取要显示的文本。因此,一个简单的解决方案是在您的 Person
对象中实现一个 toString()
方法,以返回您想要在列表中显示的 String
。
但是,使用 toString() 方法来包含应用程序使用的数据并不是一个好主意,因此更好的解决方案是创建一个自定义渲染器来显示数据。
阅读 Swing 教程中关于 Writing a Custom Renderer 的部分了解更多信息和示例。
关于java - 在 Jlist 中使用 Jbutton ActionPerformed 方法创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41245437/
假设我有一个带有 SelectPieceListener 的“选择”JButton。我想检查是否再次执行该操作(单击选择按钮)。但是,actionPerformed 是 void,所以我不能将它用作
我有一个关于 Swing Timer 的问题,特别是如何多次调用 actionPerformed 并等待最后一个 actionPerformed 完成后再执行它。我知道其他人以前也问过这个问题,但我发
所以我读了this了解事件源、事件对象和事件处理程序及其实现,如下所示: aButton.addActionListener(new ActionAdapter() { public void
我不明白为什么 jcombobox4ActionPerformed 中的代码在我没有单击任何内容的情况下就被执行了。程序一执行,就会出现“已执行”消息。有什么问题吗? public class Mai
我创建了一个代码,每当您单击 jmenuitem New Game int x 时,其值都会为 1,但遗憾的是它不会返回任何值 package sprite; import java.
我想在与按钮关联的 ActionPerformed 方法内执行一个方法,但不起作用。我研究了很多时间,但无法检测到错误。 这是我的代码: /** * Método que crea un nuevo
我要感谢 Andrew Thompson 帮助我完成了代码。如何访问每个按钮的 actionPerformed 监听器? 代码应该根据您按下的按钮来移动屏幕上的“球”。 import javax.sw
我希望每次单击按钮“bouton”时都执行该功能 boutonPane.Panel2(h, ....) 应该显示 h 个圆圈。所以我想要 2 个,然后 3 个,然后 4 个,然后 5 个......圆
这是一个正在 build 中的平开窗。问题出在一个 Action 中。当我对“打开”按钮执行操作时,我调用一个方法 OpenFile()。 此方法似乎一直有效,直到最后抛出 UnsupportedOp
我有三个不同的类,每个类都是一个单独的 JFrame,具有自己的 GUI,并且每个类都执行不同的操作。在另一个类中,我有我的 Keypad 类,上面所有这些类都包含该类。 这是我的 Keypad 类中
这段代码有一点问题。 actionPerformed 方法不起作用。当我按下按钮时,按钮 knappStartSalg 和 knappStartKunde 没有反应。 所有应该导入的内容都已导入。 非
` public void actionPerformed(ActionEvent e) { if (e.getSource() == saleButton)
好的,我正在为我的学校项目开发 JApplet。我想要它做的是每次单击 JButton(“菜单按钮”)时,它都会删除容器的当前内容,然后向容器添加一个新的 JApplet。我已经可以正常工作了,我遇到
我正在尝试创建一个用于导入 CSV 文件的按钮,但出现此错误: actionPerformed(java.awt.event.ActionEvent) in cannot implement
我是一名 Java 初学者,现在当我开始使用接口(interface)时,我想知道到底发生了什么。我认为 ActionListener 接口(interface)就是一个很好的例子。 我对接口(int
这里是控件的初始化。 public void init(){ ... c = new JComboBox(); .... c.addActionListener(thi
我正在尝试将 RedSquare 类的对象添加到 CatchMeV2 类的 JFrame 中。有什么问题? public class CatchMeV2 implements ActionListen
我试图更好地理解 Java 中的 GUI 编程,但出现了一些奇怪的行为。该程序显示一个带有随机颜色渐变的圆圈,当您单击该按钮时,颜色会发生变化。很简单,除了我注意到当我不小心展开窗口时,触发了 act
actionPerformed 执行后会发生什么? actionPerformed 执行后,有什么方法可以回到程序的主类吗? 这是代码示例: public final class JavaGame e
我正在尝试使用按钮来控制在窗口上执行的操作。为此,我试图返回字符串以在整个程序中发出命令。到目前为止,我设法让这段代码工作: @Override public void actionPerformed
我是一名优秀的程序员,十分优秀!