如何在JList(java)上输出文本输入和组合框

时间:2017-03-17 01:07:53

标签: java swing jtextfield jcombobox jlist

import java.awt.GridLayout;
import java.awt.BorderLayout;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JList;

public class PetUI extends JFrame implements ActionListener{
JButton btnAdd = new JButton("Add");
JButton btnCancel = new JButton("Cancel");
JTextField txtbox1 = new JTextField();
JTextField txtbox2 = new JTextField();
public PetUI(){
  super("Pet Shop");
  JPanel panel1 = new JPanel();
  JPanel panel2 = new JPanel();

  //inputs
  panel1.setLayout(new GridLayout(3,4));
  add(panel1,BorderLayout.NORTH);
  panel1.add(new JLabel("Pet Type: "));
  String [] animals = {"Cat","Dog","Rabbit"};
  JComboBox petlist = new JComboBox(animals);
  panel1.add(petlist);
  panel1.add(new JLabel("Breed: "));
  panel1.add(txtbox1);
  panel1.add(new JLabel("Name: "));
  panel1.add(txtbox2);

  //buttons
  add(panel2,BorderLayout.CENTER);
  panel2.add(btnAdd);
  btnAdd.addActionListener(this);
  panel2.add(btnCancel);      

  setVisible(true);
  setSize(300,300);
  setDefaultCloseOperation(EXIT_ON_CLOSE);
 }
 public void actionPerformed(ActionEvent e){

 }
 public static void main(String [] args){
  new PetUI();
 }
}

我该怎么做?将其输出到JList。 我的老师没有教给我们这个。 我试图在网上搜索但它没有成功。 我已经经历过如此多的YT教程而且没有成功。

1 个答案:

答案 0 :(得分:0)

欢迎来到SO。这是一个非常基础的东西,可以帮助您入门:

public class PetUI extends JFrame implements ActionListener{

    JButton btnAdd = new JButton("Add");
    JButton btnCancel = new JButton("Cancel");
    JTextField txtbox1 = new JTextField();
    JTextField txtbox2 = new JTextField();
    JList<String> list;
    DefaultListModel<String> listModel;
    JComboBox<String> petList;

    public PetUI(){

        super("Pet Shop");

        JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();

        //inputs
        panel1.setLayout(new GridLayout(3,4));
        add(panel1,BorderLayout.NORTH);
        panel1.add(new JLabel("Pet Type: "));
        String [] animals = {"Cat","Dog","Rabbit"};
        petList = new JComboBox<>(animals);
        panel1.add(petList);
        panel1.add(new JLabel("Breed: "));
        panel1.add(txtbox1);
        panel1.add(new JLabel("Name: "));
        panel1.add(txtbox2);

        //buttons
        add(panel2,BorderLayout.CENTER);
        panel2.add(btnAdd);
        btnAdd.addActionListener(this);
        panel2.add(btnCancel);

        //JList
        listModel = new DefaultListModel<>();

        list = new JList<>(listModel);
        list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
        list.setLayoutOrientation(JList.HORIZONTAL_WRAP);
        list.setVisibleRowCount(-1);

        JPanel panel3 = new JPanel();
        panel3.setLayout(new FlowLayout(FlowLayout.LEFT));
        panel3.add(list);
        add(panel3,BorderLayout.SOUTH);

        setVisible(true);
        setSize(300,300);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    @Override
    public void actionPerformed(ActionEvent e){

        StringBuilder sb = new StringBuilder((String)petList.getSelectedItem());
        sb.append(" ")  //add space
          .append(txtbox1.getText())
          .append(" ")
          .append(txtbox2.getText());

        listModel.addElement(sb.toString());
    }
    public static void main(String [] args){
        new PetUI();
    }
}