所以我的代码基本上有一个JPanel带有一些文本字段和一个JButton,当用户单击按钮时它会转到按钮侦听器,然后从文本字段中获取数据并处理它,创建JLabels它添加到另一个不可见的JPanel. 然后我让第一个 JPanel 不可见,让第二个面板可见,显示我生成的“结果”。
这一切都有效,但问题是,当我的程序处理它从文本字段获取的数据时,我希望JButton更改它所说的内容,并且我已经尝试使用event.getSource().setText(),并且我能够发现它正在更改按钮文本(通过打印到控制台),但它不会使用更改的文本更新按钮。
在此之后,我尝试了所有形式的重新验证、重新绘制和验证,但都没有奏效。有任何想法吗?谢谢!
//entryPanel is the first panel, and picksPanel is the second panel
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
((JButton)event.getSource()).setText("Thinking...");
revalidate();
repaint();
try
{
CriticPick picks = new CriticPick(cityfield.getText(),statefield.getText());
LinkedList<Movie> pickslist = picks.getList();
glayout.setRows(pickslist.size()+2+thepicks.movnum);
picksPanel.add(new JLabel("The Results:"));
//In my actual code I do a bunch of processing and looping that results in jlabels being added to picksPanel
for (int i=0;i<pickslist.size();i++)
{
JLabel …Run Code Online (Sandbox Code Playgroud) 我有一个对象数组,每个对象都有各种属性,我想弄清楚如何在数组上运行“排序”,并指定要排序的每个对象的特定属性。
例如,假设我的对象是“椅子”,并且我想按numlegs(腿数)的属性进行排序,那么我将能够对一组椅子运行排序功能,并按数字对它们进行排序他们的腿像“排序(椅子,小腿)”。有什么办法吗?
谢谢!
在我的代码中,用户按下一个按钮,然后我希望它调用一个SwingWorker后台线程,我基本上遍历一个列表,与其他数据交叉引用它,然后用JLabel更新GUI,每次通过我的环.问题是我知道我应该在doInBackground()中执行此操作,但是我没有什么可以返回的,并且我还希望每次循环时都使用新的JLabel更新JPanel.我该怎么做呢?谢谢!