2011-03-10 117 views
1

我想在jframe窗體上顯示列表。任何幫助表示讚賞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); 
      } 
     }); 
    } 
+0

請解釋和詳細說明你的問題。 – Osmani 2015-10-13 00:24:38

回答

2

您可能會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); 
    } 
} 
+1

看來,GUI編輯器可能會阻礙你的進步。從上面引用的更簡單的例子開始可能會很好。 – trashgod 2011-03-10 05:46:17