1

静的関数と非静的関数について教えてくれるので、あるクラスにある JList を呼び出して、無駄に別のクラスに追加しようとしています

私は 1 つのクラスで finalList と呼ばれる ArrayList を取得しました。これには値が入力されており、これはリストを出力することで確認されています。

次に、cupboard という別のファイルに別のクラスがあり、そこで項目を JList に入れたいと考えています。

    finalList.add(si);

ここで、si は配列項目であり、finalList は新しい配列であり、食器棚クラス ファイルでは、現在、

    public Cupboard() 
{
    cupboardContent = new JList(ShoppingList.finalList.toArray());
}

cupboardContent は、アイテムを配置したい新しい JList です。

誰かが何か考えがあればありがとう。私はそれが単純なことだと確信しており、私はかなり愚かです!通常のプロセスと GUI を組み合わせると、GUI を操作するのは初めてなので、接続に苦労しているようです。

//編集

コードの最初のビットは、項目を配列に追加することですが、新しいクラスでそれを呼び出す方法を考え出す必要があります。現在、これは私が持っているものです

    public class KitchenCupboard extends JPanel //implements ActionListener
    {
private JList cupboardContent;
private JButton usedItem;

ShoppingList items = new ShoppingList();

public KitchenCupboard() 
{
    System.out.println(ShoppingList.finalList);

    cupboardContent = new JList(items.finalList.toArray());
    cupboardContent.setVisibleRowCount(10);
    cupboardContent.setFixedCellHeight(30);
    cupboardContent.setFixedCellWidth(200);
    cupboardContent.setFont(new Font ("sansserif", Font.BOLD, 13));
    cupboardContent.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    add(new JScrollPane(cupboardContent));
}

}

ShoppingList の配列は

    static ArrayList<ShoppingItem> finalList = new ArrayList<ShoppingItem>();

ShoppingList.java と KitchenCupboard.java の 2 つのクラス/ファイルを使用しています。

4

3 に答える 3

0

これを確認してください。このプログラムでは、すべての要素を追加したリスト「都市リスト」があります。その後、IA が要素を移動するリスト「2 番目のリスト」があります。このプログラムは、要素を移動することを意味します。 、2番目のリストから都市リストまで。理解を深めるために、このプログラムを実行してください...

import javax.swing.JList;
import javax.swing.JTextField;
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

/*
 * Combo BOX pROBLEM
 */

public class ComboBoxProblem extends JFrame 
    {
        // made them static , so I can use them over & over
        static JLabel citiesLabel = new JLabel();

        static JList citiesList = new JList();
        static JScrollPane citiesScrollPane = new JScrollPane();

        static JLabel SecondLabel = new JLabel();
        static JList SecondList = new JList();
        static JScrollPane SecondScrollPane = new JScrollPane();


        // these are button to move the elements
        static JButton AssignButton = new JButton();
        static JButton RemoveButton = new JButton();

        static JList made_list = new JList();

public static void main(String args[]) 
    {
        new ComboBoxProblem().show();
    }


public ComboBoxProblem() 
    {
        // create frame
        setTitle("Flight Planner");
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new GridBagLayout());


        GridBagConstraints gridConstraints;
        citiesLabel.setText("Destination City");
        gridConstraints = new GridBagConstraints();
        gridConstraints.gridx = 0;
        gridConstraints.gridy = 1;
        gridConstraints.insets = new Insets(10, 0, 0, 0);

        getContentPane().add(citiesLabel, gridConstraints);
        citiesScrollPane.setPreferredSize(new Dimension(150, 100));
        citiesScrollPane.setViewportView(citiesList);
        gridConstraints = new GridBagConstraints();
        gridConstraints.gridx = 0;
        gridConstraints.gridy = 2;
        gridConstraints.insets = new Insets(10, 10, 10, 10);
        getContentPane().add(citiesScrollPane, gridConstraints);

        final DefaultListModel List1= new DefaultListModel();
        List1.addElement("San Diego");
        List1.addElement("Los Angeles");
        List1.addElement("Orange County");
        List1.addElement("Ontario");
        List1.addElement("Bakersfield");

        citiesList.setModel(List1);

        SecondLabel.setText("Moved");
        gridConstraints = new GridBagConstraints();
        gridConstraints.gridx = 1;
        gridConstraints.gridy = 1;
        gridConstraints.insets = new Insets(10, 0, 0, 0);

        getContentPane().add(SecondLabel, gridConstraints);
        SecondScrollPane.setPreferredSize(new Dimension(150, 100));
        SecondScrollPane.setViewportView(SecondList);
        gridConstraints = new GridBagConstraints();
        gridConstraints.gridx = 1;
        gridConstraints.gridy = 2;
        gridConstraints.insets = new Insets(10, 10, 10, 10);
        getContentPane().add(SecondScrollPane, gridConstraints);

        final DefaultListModel List2 = new DefaultListModel();

        SecondList.setModel(List2);

        AssignButton.setText("Move");
        gridConstraints = new GridBagConstraints();
        gridConstraints.gridx = 0;
        gridConstraints.gridy = 3;
        gridConstraints.insets = new Insets(0, 0, 10, 0);
        getContentPane().add(AssignButton, gridConstraints);
        AssignButton.addActionListener(new ActionListener() 
            {
                public void actionPerformed(ActionEvent e) 
                    {
                        for(int i = 0; i < List1.getSize(); i++)
                            {
                                if(citiesList.isSelectedIndex(i))
                            {
                                List2.addElement(List1.getElementAt(i));
                                List1.removeElementAt(i);
                                i--;
                            }

                    }
            }
            });

        RemoveButton.setText("Reverse");
        gridConstraints = new GridBagConstraints();
        gridConstraints.gridx = 1;
        gridConstraints.gridy = 3;
        gridConstraints.insets = new Insets(0, 0, 10, 0);
        getContentPane().add(RemoveButton, gridConstraints);
        RemoveButton.addActionListener(new ActionListener() 
            {
                public void actionPerformed(ActionEvent e) 
                    {

                        for(int i = 0; i < List2.getSize(); i++)
                            {
                                if(SecondList.isSelectedIndex(i))
                                {
                                    List1.addElement(List2.getElementAt(i));
                                    List2.removeElementAt(i);
                                    i--;
                                }
                            }

                    }
            });

        pack();

      }
 }
于 2013-04-08T21:23:52.137 に答える