相关疑难解决方法(0)

为什么在通过列表模型更新内容后,我有时会得到空白的JLists?

我有一个反复出现的问题,我有一个JList,我希望用新内容更新.我正在使用DefaultListModel,它提供了向列表中添加新内容的方法,但是当使用这些方法时,我发现有一部分调用会导致一个完全空白的JList.更新是否有效似乎是随机的,与发送的数据无关.

下面是一个简单的程序,演示了这个问题.它只是生成一个增加大小的列表来更新JList,但是当运行时,列表内容似乎随机出现和消失.

据我所知,我正在遵循正确的API来做到这一点,但我想我必须有一些基本的东西,我不知道.

import java.awt.BorderLayout;
import javax.swing.*;

public class ListUpdateTest extends JPanel {

    private JList list;
    private DefaultListModel model;

    public ListUpdateTest () {
        model = new DefaultListModel();
        list = new JList(model);

        setLayout(new BorderLayout());

        add(new JScrollPane(list),BorderLayout.CENTER);
        new UpdateRunner();
    }

    public void updateList (String [] entries) {
        model.removeAllElements();
        for (int i=0;i<entries.length;i++) {
            model.addElement(entries[i]);
        }
    }

    private class UpdateRunner implements Runnable {

        public UpdateRunner () {
            Thread t = new Thread(this);
            t.start();
        }

        public void run() {

            while (true) {
                int entryCount = …
Run Code Online (Sandbox Code Playgroud)

java swing model jlist

3
推荐指数
2
解决办法
3835
查看次数

重新进行循环

可能重复:
如何使用Swing制作动画?

在摇摆中,我排序一个阵列,并想要动画它.每次我在一个循环中更新数组时,我有另一个while循环用于暂停效果,当我调用repaint()时实际上没有调用.为什么它不起作用?了Thread.sleep(1000); 冻结申请并且不会恢复.

    public class Shape extends JPanel  {

    private static final long serialVersionUID = 1L;
    public int col;
    public JButton b2 = new JButton("Sort");
    public Rectangle2D.Double table = null;
    public ArrayList<Integer> arr = null;

    public Shape(){

        initArray(); // initialize array with random number of random numbers
        table = new Rectangle2D.Double(10,10,400,400);
        add(b2); // button sort

        b2.addActionListener(new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                            System.out.println("sort it!");
                            Sort(arr);
                            display(arr);
                    }
         });
    }

    public void initArray() {
        col = generateRandom(10,20);            // …
Run Code Online (Sandbox Code Playgroud)

java swing

3
推荐指数
1
解决办法
723
查看次数

Java Swing; 两个类,在哪里放置if语句和新的actionlisteners?

纯粹的初学者问题在这里.我正在修改代码,现在我仍然坚持以下问题;

我的计时器在上层阶级调用.但我的int计数正在下面的课程中调用.

每当我添加if语句时;

if (count == 2) { t.stop();}
Run Code Online (Sandbox Code Playgroud)

我得到错误,因为int在下面的类和上面的类中的t(计时器).

  1. 当涉及两个类时,如何添加if语句?

  2. 如果我想为按钮添加一个新的actionlistener来停止计数,我是否将它放在上面或下面的类中?

代码在这里

提前致谢

java swing if-statement where actionlistener

2
推荐指数
1
解决办法
5854
查看次数

JTextField的闪烁颜色

我有一个JTextField,如果它有无效的内容,它将被清除.我希望背景闪红色一两次,以向用户表明这种情况已经发生.我试过了:

field.setBackground(Color.RED);
field.setBackground(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)

但是在这么短暂的时间内它是红色的,不可能被看到.有小费吗?

java swing colors jtextfield

0
推荐指数
1
解决办法
2980
查看次数

标签 统计

java ×4

swing ×4

actionlistener ×1

colors ×1

if-statement ×1

jlist ×1

jtextfield ×1

model ×1

where ×1