0
我怎樣才能把examplefile.dat的內容到的jList examplefile.dat我怎樣才能把文件內容到一個JList
埃文:喬:矛:史蒂夫
的名字分開由冒號將被轉換爲陣列,並把它放在JList中或JComboBox中
這裏是我的代碼加載和打印文件
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
public class FileScanner {
/**
* @param args the command line arguments
* @throws FileNotFoundException
* @throws IOException
*/
public static void main(String[] args) throws FileNotFoundException, IOException {
JPanel panel = new JPanel();
JFrame frame = new JFrame();
final JTextField input0 = new javax.swing.JTextField(20);
JButton load = new javax.swing.JButton("Load");
frame.add(panel);
frame.setSize(240,200);
panel.add(input0);
panel.add(load);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setVisible(true);
load.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
FileReader fin = null;
String filename = input0.getText();
try {
fin = new FileReader(filename);
} catch (FileNotFoundException ex) {
Logger.getLogger(FileScanner.class.getName()).log(Level.SEVERE, null, ex);
}
Scanner src = new Scanner(fin);
src.useDelimiter(":");
while (src.hasNext()) {
String lol = src.nextLine();
System.out.println(lol);
}
}
});
}
}
確定這是我的代碼。 。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultListModel;
import javax.swing.DefaultListSelectionModel;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Jfetizanan
*/
public class IOtestForm extends javax.swing.JFrame {
/**
* Creates new form IOtest
*/
public IOtestForm() {
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() {
jScrollPane1 = new javax.swing.JScrollPane();
list = new javax.swing.JList();
input0 = new javax.swing.JTextField();
load = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jScrollPane1.setViewportView(list);
DefaultListSelectionModel m = new DefaultListSelectionModel();
m.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
m.setLeadAnchorNotificationEnabled(false);
list.setSelectionModel(m);
list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
int selected[] = list.getSelectedIndices();
for (int i = 0; i < selected.length; i++) {
String element = (String) list.getModel().getElementAt(selected[i]);
input0.setText(element);
}}});
load.setText("Load");
load.addActionListener(new ActionListener() {
@Override
@SuppressWarnings("unchecked")
public void actionPerformed(ActionEvent e) {
FileReader fin = null;
try {
fin = new FileReader("data.dat");
} catch (FileNotFoundException ex) {
Logger.getLogger(IOtestForm.class.getName()).log(Level.SEVERE, null, ex);
}
Scanner src = new Scanner(fin);
src.useDelimiter("\n");
DefaultListModel model = new DefaultListModel();
while (src.hasNext()) {
String lol = src.nextLine();
model.addElement(lol);
}
list.setModel(model);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
.addComponent(input0)
.addComponent(load, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(13, 13, 13)
.addComponent(load)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(input0, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(94, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(IOtestForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new IOtestForm().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTextField input0;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JList list;
private javax.swing.JButton load;
// End of variables declaration
}
@MadProgrammer看看新的代碼我張貼。它所做的是它加載該文件,並顯示在一個JList,裏面的一切,當我點擊它..它顯示一個文本行。但我希望Jlist只顯示列表中的數字,以及當我點擊它時。它顯示這些字符在字符串的其餘部分的其餘部分在線路
這必須是data.dat文件
1洛爾
2洛爾
3洛爾
的內容4洛爾
*不介意線之間的空間
我在哪裏可以把JList的? – JFetz2191 2012-08-14 03:30:23
不是將按鈕添加到框架,而是添加一個帶有「BorderLayout」的面板。將'JList'按鈕添加到'PAGE_START'和'JScrollPane'到'CENTER'中。一旦按鈕被點擊,文件被解析,爲列表設置一個新的模型。 – 2012-08-14 03:33:14
你想要的任何地方,它就是你的屏幕。就個人而言,我要麼改變佈局管理器,並稍微更好地佈局組件 – MadProgrammer 2012-08-14 03:33:25