我想在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 :(得分:2)
您可以从How to Use Lists或与此相关的example开始。基本步骤包括:
如您所示,使用数据初始化String[]
。
使用数据构建JList
,隐式创建ListModel
。
将JList
添加到JFrame
。
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);
}
}