java - 在 jframe 上显示列表

标签 java swing jlist

我想在 jframe 表单上显示列表。感谢任何帮助

import java.util.List;
import java.util.ArrayList;


public class Collatz extends javax.swing.JFrame {

    /** Creates new form Collatz */
    public Collatz() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jList1 = new javax.swing.JList();
        jScrollPane3 = new javax.swing.JScrollPane();
        jScrollPane2 = new javax.swing.JScrollPane();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("Loop (If Applicable)");

        jTextField1.setText("Intial Number");
        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });

        jButton1.setText("Go!");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jList1.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
            public int getSize() { return strings.length; }
            public Object getElementAt(int i) { return strings[i]; }
        });
        jScrollPane1.setViewportView(jList1);

        jScrollPane3.setViewportView(jScrollPane2);

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(60, 60, 60)
                        .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 128, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(layout.createSequentialGroup()
                        .add(108, 108, 108)
                        .add(jLabel1)))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 40, Short.MAX_VALUE)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jScrollPane3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 14, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                        .add(jButton1)
                        .add(70, 70, 70))))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(60, 60, 60)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(jButton1)
                    .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(76, 76, 76)
                        .add(jLabel1))
                    .add(layout.createSequentialGroup()
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(layout.createSequentialGroup()
                        .add(18, 18, 18)
                        .add(jScrollPane3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 64, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(62, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     double c;
               c =  Double.parseDouble(jTextField1.getText());

                List<String> ls=new ArrayList<String>();

                ls.add(String.valueOf(c));




               do {
       if (c == -5) {jLabel1.setText("loop = −5 → −14 → −7 → −20 → −10 → −5");}
     if (c == -17) {jLabel1.setText("loop = −17 → −50 → −25 → −74 → −37 → −110 "
                + "→ −55 → −164 → −82 → −41 → −122 → −61 → "
                + "−182 → −91 → −272 → −136 → −68 → −34 → −17 … ");}
         if (c == -1) {jLabel1.setText("loop = -1 → -2 → -1 ");}
          if (c == 0) {jLabel1.setText("loop = 0 → 0");}
          if (c == 1) {jLabel1.setText("loop = 1 → 4 → 2 → 1");}
          if (c != -5) {jLabel1.setText("Loop (If Applicable)");}
               /**if (c != -17) {jLabel1.setText("Loop (If Applicable)");}
               if (c != -1) {jLabel1.setText("Loop (If Applicable)");}
               if (c != 0) {jLabel1.setText("Loop (If Applicable)");}
               if (c != 1) {jLabel1.setText("Loop (If Applicable)");}
               **/ if (c != 1){

        double n;
        n = Double.parseDouble(jTextField1.getText());

        if (( n % 2 ) == 0) {

                  try{
Thread.sleep(50); // Sleep for 4 sec
}
catch(InterruptedException e){} 

        double x, r; 
        x = Double.parseDouble(jTextField1.getText());

        r = x/2; 
        ls.add(String.valueOf(r));
        jTextField1.setText(String.valueOf(r));





        } 


        if (( n % 2) != 0){  
                              try{
Thread.sleep(50); // Sleep for 4 sec
}
catch(InterruptedException e){} 

            double x, r; 
        x = Double.parseDouble(jTextField1.getText());
        r = (0x3*x)+1; 
        ls.add(String.valueOf(r));
        jTextField1.setText(String.valueOf(r));

        } 


      } 
    }                                        

                while (c != 1);  }    
    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
    }                                           

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Collatz().setVisible(true);
            }
        });
    }

最佳答案

您可以从 How to Use Lists 开始或与此相关example 。基本步骤包括:

  • 使用数据初始化 String[],如您所示。

  • 使用数据构造 JList,隐式创建 ListModel

  • JList 添加到 JFrame

image

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JList;

/** @see https://stackoverflow.com/a/5255930/230513 */
public class Test {

    private void display() {
        JFrame f = new JFrame("Test");
        String[] data = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"};
        f.add(new JList(data));
        f.pack();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Test()::display);
    }
}

关于java - 在 jframe 上显示列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5255726/

相关文章:

java - 当我在选择 0 索引的情况下删除和添加时,Swing JList 卡住

Java 日期时间转换为给定时区

java - 如何检索 firebase 实时数据库中的值

java - 单击 JList 中的项目时如何切换它们?

java - 将选定的 jList 值拆分并移动到 jTable 行 (SWING)

java - 如何更改 jbutton 事件初始化中的变量值?

java - 使用 ScheduledExecutorService 创建计时器

java - 在哪里可以找到 Aerith 项目源代码

java - jtable如何使用rs2xml

java - 模型更改时更新 JxTreeTable