【问题标题】:Writing something in JList在 JList 中写一些东西
【发布时间】:2010-05-30 00:42:36
【问题描述】:

嘿,我还有另一个问题。我在主窗口中创建了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;
}

}

如果有任何想法如何使它发挥作用,我将不胜感激。

【问题讨论】:

  • 我以前从未见过波兰语的班级名称,看起来很有趣...

标签: java swing jlist


【解决方案1】:

这有点难以理解,但据我所知,您在两个地方使用了您的 Zmienne_pomocnicze 类,而且它们似乎都没有做任何事情。

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

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

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

【讨论】:

    【解决方案2】:

    这是一个向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);
        }
    }
    

    【讨论】:

      【解决方案3】:

      我始终建议您阅读 API 以了解基本信息。

      如果您阅读 JList API,您会找到关于 “如何使用列表” 的 Swing 教程的链接。此处的示例展示了如何在 ListModel 中动态添加和删除条目。

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

      不仅您现在有一个参考资料,可能会在其他问题上派上用场。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-06
        • 2014-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多