Reputation: 139
How can I put the contents of the examplefile.dat into the Jlist examplefile.dat
evan:joe:lance:steve
the names separated by colon would be converted to array and put it in the JList or JComboBox
here's my code to Load and print the file
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);
}
}
});
}
}
Ok this is my Code..
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 look at the new code I post.. what It does is it load the file and show everything inside it in a JList and when I click it.. It shows the line in a textarea.. But I want the Jlist to display only the number in the list and when I click it. It displays the rest of the Characters in the rest of the string in the line
this must be the content of the data.dat
1 lol
2 lol
3 lol
4 lol
*don't mind the space between the lines
Upvotes: 0
Views: 2145
Reputation: 347204
JList list = new JList(); // You need to create the JList first
JScrollPane scrollPane = new JScrollPane(list);
// Add the scrollpane to the UI
...
// At some time in the future, load the results...
DefaultListModel model = new DefaultListModel();
while (src.hasNext()) {
String lol = src.nextLine();
model.addElement(lol);
}
list.setModel(model);
Perhaps you'd like to take a read of
For some more useful information
Upvotes: 3