在JList中写一些东西

时间:2010-05-30 00:42:36

标签: java swing jlist

嘿,我有另一个问题。我在主窗口中创建了JList,现在我想添加一些内容。我这样做......

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) 

{          

           Dodaj_Przedmiot dodaj_przedmiot = new Dodaj_Przedmiot(null, true);
           dodaj_przedmiot.setVisible(true);
           SterowanieBazy instance = SterowanieBazy.getInstance();       
           Zmienne_pomocnicze zp = new Zmienne_pomocnicze();
           String przedmiot = zp.getPrzechowaj();
           instance.dodajPrzedmiot(przedmiot);
           String przedm[] = instance.zwrocPrzedmioty();
           jList1.setListData(przedm);
}

我要在该列表中写的是我从jDialogForm中收集的内容:dodaj_przedmiot

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 

{

        String sciezka = jTextField1.getText();
        if (sciezka.length() > 0)
        {
          Zmienne_pomocnicze zp = new Zmienne_pomocnicze();
          zp.setPrzechowaj(sciezka);

        }
        this.setVisible(false);
    }                            

我收集尝试使用此类

复制该日期
public class Zmienne_pomocnicze {

public String n;
public int a;

public void setPrzechowaj (String neew)

{

    n = neew;
}

public String getPrzechowaj ()

{

    return n;
}

}

如果能让它发挥作用,我将不胜感激。

3 个答案:

答案 0 :(得分:2)

这有点难以理解,但从我收集的内容来看,你在两个地方使用你的Zmienne_pomocnicze课程,而且他们似乎都什么都不做。

首先,在jButton2ActionPerformed中,您实例化一个新的Zmienne_pomocnicze并尝试使用getPrzechowaj方法从中获取数据。这将返回n,但由于您刚刚实例化了该实例,nnull。由于我无法从以下代码的方法名称推断,我无法弄清楚你想对这些数据做什么,但这个动作肯定不是你想要做的。

在第二种情况下,jButton1ActionPerformed从文本字段中获取值,然后测试有效性(legnth大于0)。如果验证通过,则您创建一个新的Zmienne_pomocnicze,使用文本字段值调用setPrezechowaj,然后让新对象超出范围。同样,这肯定不是预期的效果。

看看你的程序流程应该是什么,这将是很有趣的,即什么按钮触发哪些jButton[12]ActionPerformed方法以及你希望它们如何交互。

答案 1 :(得分:1)

以下是向JList添加条目的简单示例。

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;

public class JListTest {

    private static final Random random = new Random();

    public static final void main(String args[]) throws Exception {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                createAndShowGUI();
            }
        });
    }

    private static void createAndShowGUI() {
        final JFrame frame = new JFrame("Test");
        final DefaultListModel dlm = new DefaultListModel();
        final JList list = new JList(dlm);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(new JScrollPane(list));
        frame.add(new JButton("Add") {
            {
                addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        dlm.addElement("A" + (random.nextInt(9000) + 1000));
                    }
                });
            }
        }, BorderLayout.SOUTH);
        frame.setLocationRelativeTo(null);
        frame.pack();
        frame.setVisible(true);
    }
}

答案 2 :(得分:1)

我总是建议您阅读API以获取基本信息。

如果您阅读了JList API,您将在“如何使用列表”中找到指向Swing教程的链接。这里的示例显示了如何从ListModel动态添加和删除条目。

教程是一个很好的起点,因为您可以找到工作示例以及代码如何工作的解释。然后,如果需要,您可以询问有关特定代码的特定问题。

不仅如此,您现在还有一个可能会对其他问题派上用场的参考。