Что-то писать в JList - PullRequest
0 голосов
/ 30 мая 2010

эй, у меня есть другая проблема. Я создал 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 ]

2 голосов
/ 30 мая 2010

За этим довольно трудно следовать, но из того, что я понял, вы используете класс Zmienne_pomocnicze в двух местах, и оба они, похоже, ничего не делают.

Сначала в jButton2ActionPerformed вы создаете новый экземпляр Zmienne_pomocnicze и пытаетесь получить из него данные, используя метод getPrzechowaj. Это вернет n, но, как вы только что создали экземпляр, n равно null. Поскольку я не могу сделать вывод из имен методов следующего кода, я не могу понять, что вы хотите сделать с этими данными, но это действие, безусловно, не то, что вы хотите сделать.

Во втором случае jButton1ActionPerformed берет значение из текстового поля и затем проверяет правильность (legnth больше 0). Если проверка пройдена, вы создаете новый Zmienne_pomocnicze, вызываете setPrezechowaj со значением текстового поля и затем позволяете новому объекту выпадать из области видимости. Опять же, это, конечно, не желаемый эффект.

Было бы интересно посмотреть, каким должен быть поток вашей программы, т. Е. Какая кнопка запускает какие jButton[12]ActionPerformed методы и как вы ожидаете их взаимодействия.

1 голос
/ 30 мая 2010

Я всегда рекомендую прочитать API для получения базовой информации.

Если вы прочитаете JList API, вы найдете ссылку на учебник по Swing на «Как использовать списки» . В этом примере показано, как динамически добавлять и удалять записи из ListModel.

Учебники - хорошее место для начала, потому что вы найдете рабочие примеры, а также объяснения того, как работает код. Затем при необходимости вы можете задать конкретный вопрос о конкретном куске кода.

Мало того, что теперь у вас есть справка, которая может пригодиться для решения других проблем.

1 голос
/ 30 мая 2010

Вот простой пример добавления записей в 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);
    }
}
...