【问题标题】:Gui JList ActionListenerGui JList ActionListener
【发布时间】:2014-02-14 13:14:46
【问题描述】:

嘿,晚安,我对名为“提交”的第二个按钮有疑问,因为我无法将输入的所有信息转移到框架中的空 JList 中,这是我的代码到目前为止,我的问题是如果我单击提交,我的所有信息将出现在我的消息区域中的框架中,它需要列出。谢谢

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class vin extends JFrame
{
        JLabel lab = new JLabel("Enter Your Name :");
        JLabel lab2 = new JLabel("Enter Your Birthday :");
        JLabel lab3 = new JLabel("Enter Your Age:");
        JLabel lab4 = new JLabel("Enter Your HomeTown:");
        JLabel lab5 = new JLabel("Choose Your Department:");
        JButton b1 = new JButton("Exit");
        JTextField t1 = new JTextField(15);
        JTextField t2 = new JTextField(15);
        JTextField t3 = new JTextField(15);
        JTextField t4 = new JTextField(15);
        JButton b2 = new JButton("Submit");
        JButton b3 = new JButton("Clear");
         JLabel lab6 = new JLabel("Message :");
        JList list = new JList();
        JPanel panel = new JPanel();
        JLabel brief;

    public vin()
    {

        setLocation(500,280);
        panel.setLayout(null);


        lab.setBounds(10,10,150,20);
        t1.setBounds(130,10,150,20);
        lab5.setBounds(10,40,150,20);
        lab2.setBounds(10,140,150,20);
        t2.setBounds(130,140,150,20);
        lab3.setBounds(10,170,150,20);
        t3.setBounds(110,170,150,20);
        lab4.setBounds(10,200,150,20);
        t4.setBounds(150,200,150,20);
        lab6.setBounds(10,240,150,20);
        list.setBounds(50,270,150,20);
        list.setSize(250,150);
        b1.setBounds(250,470,150,20);
        b2.setBounds(60,470,150,20);
        b3.setBounds(160,470,150,20);
        b1.setSize(60,30);
        b2.setSize(75,30);
        b3.setSize(65,30);


        panel.add(lab);
        panel.add(t1);
        panel.add(lab5);
        panel.add(lab2);
        panel.add(t2);
        panel.add(t3);
        panel.add(t4);
        panel.add(lab4);
        panel.add(lab3);
        panel.add(lab6);
        panel.add(b1);
        panel.add(b2);
        panel.add(b3);
        panel.add(list);

        brief = new JLabel("Goodmorning "+t1+" Today is "+t2+" its your birthday You are now"+t3+" of age You are From"+t4);
        getContentPane().add(panel);


        b1.addActionListener(new ActionListener()
        {
           public void actionPerformed(ActionEvent a)
           {
               Object source = a.getSource();

               if(source == b1)
               {
                   System.exit(0);
               }
           }
        });

        b2.addActionListener(new ActionListener()
        {

            public void actionPerformed(ActionEvent a)
            {
                Object source = a.getSource();

                if(source == b2)
                {
                   list = new JList();
                }  
            }
        });
        b3.addActionListener(new ActionListener()
        {
           public void actionPerformed(ActionEvent a)
           {
               Object source = a.getSource();

               if(source == b3)
               {
                   t1.setText("");
                   t2.setText("");
                   t3.setText("");
                   t4.setText("");
               }
           }
        });
    }       

    public static void main(String args [])
    {
        vin w = new vin();

        w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        w.setSize(400,600);
        w.setVisible(true);
    }
}

【问题讨论】:

  • 它不是很清楚你在问什么。你想在 b2 上有监听器,如果你点击会初始化列表然后?就这样?
  • 我不明白你的问题是什么,你为什么要在actionListenerlist = new JList()里面做?
  • 是的,先生,如果我单击 b2,它将出现在我的消息中,先生,我的框架底部的白色。会出现姓名、年龄等所有信息
  • @nachokk 因为我需要在我的框架中调用我的所有信息到我的 JList。
  • 现在我想我明白了一点..您有获取信息的文本字段,您想在提交点击时获取该信息并将其放入列表中?

标签: java swing user-interface jlist


【解决方案1】:

好吧,据我了解,这将从字段中获取信息并将它们放入您拥有的 LIST 中

b2.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent a)
        {
            DefaultListModel listModel = new DefaultListModel();
            listModel.addElement(t1.getText());
            listModel.addElement(t2.getText());
            listModel.addElement(t3.getText());
            listModel.addElement(t4.getText());
            list.setModel(listModel);


        }
    });

我为你做了简单的事情,所以你可以看到我在做什么

您可以使用数组和 for 循环来做到这一点,这样您就可以摆脱 listmodel.add .... 等每次以及何时您想要消除用户之前使用的所有信息,例如 arraylist。我不确定当您发布问题时,您希望您的程序下次如何运行请指出确切的问题以及您希望程序如何详细工作。也只发布相关代码而不是全部。

【讨论】:

  • 我可以在 t1.getText()) 中添加一些字符串吗? ?喜欢 ("blabla"+t1.getText()); ?
  • 当然可以。:) 试一试,你会看到。当你返回它时,它的行为就像一个字符串
猜你喜欢
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 1970-01-01
  • 2018-02-21
相关资源
最近更新 更多