LQ Newbie
Registered: Dec 2005
Posts: 7
Rep:
|
reading data from textfile in java?
Hi i'm in progress to make a little program but i'm not that good and have a problem: Now i read all new data in by typing it myself but i want to read it in from a texfile( *.dat). Some one who can help??
this is my code: ( i put it in big letters what has to come in a data-file)
TestFrame.java
package meting;
import meting.model.WeersMetingen;
import meting.model.WeersMeting;
import meting.view.JTableFrame;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
public class TestFrame extends JFrame {
private JButton verslagButton;
private JButton tabelButton;
private JButton grafiekButton;
private JPanel keuzePanel;
private Font font;
private Border border;
private JFrame newFrame;
public TestFrame(String titel) {
super(titel);
init();
maakKeuzePanel();
maakFrame();
voegListenersToe();
Label tekstLabel = new Label();
tekstLabel.setAlignment(Label.CENTER);
tekstLabel.setFont(font);
tekstLabel.setText("ONT8");
add(tekstLabel);
toonFrame();
}
public void init() {
font = new Font("Sans Serif",Font.PLAIN,14);
border = BorderFactory.createEtchedBorder(
EtchedBorder.RAISED, Color.blue, Color.black);
}
private void maakKeuzePanel() {
keuzePanel = new JPanel();
keuzePanel.setBorder(border);
keuzePanel.setBorder(BorderFactory.createTitledBorder(border, "MAAK UW KEUZE"));
ImageIcon icon = new ImageIcon("grafiek.gif");
ImageIcon iconOver = new ImageIcon("images.gif");
verslagButton = new JButton("Verslag");
verslagButton.setHorizontalAlignment(SwingConstants.CENTER);
verslagButton.setHorizontalTextPosition(SwingConstants.CENTER);
verslagButton.setVerticalTextPosition(SwingConstants.BOTTOM);
verslagButton.setFont(font);
verslagButton.setMnemonic(KeyEvent.VK_V); //ALT-V
verslagButton.setActionCommand("toonVerslag");
//verslagButton.setEnabled(false);
tabelButton = new JButton("Tabellen");
tabelButton.setHorizontalAlignment(SwingConstants.CENTER);
tabelButton.setHorizontalTextPosition(SwingConstants.CENTER);
tabelButton.setVerticalTextPosition(SwingConstants.BOTTOM);
tabelButton.setFont(font);
tabelButton.setMnemonic(KeyEvent.VK_T); //ALT-T
tabelButton.setActionCommand("toonTabel");
//tabelButton.setEnabled(false);
grafiekButton = new JButton("Grafiek", icon);
grafiekButton.setRolloverIcon(iconOver);
grafiekButton.setHorizontalAlignment(SwingConstants.CENTER);
grafiekButton.setHorizontalTextPosition(SwingConstants.CENTER);
grafiekButton.setVerticalTextPosition(SwingConstants.BOTTOM);
grafiekButton.setFont(font);
grafiekButton.setMnemonic(KeyEvent.VK_G); //ALT-T
grafiekButton.setActionCommand("toonGrafiek");
//grafiekButton.setEnabled(false);
keuzePanel.add(verslagButton);
keuzePanel.add(tabelButton);
keuzePanel.add(grafiekButton);
}
private void maakFrame() {
Container pane = getContentPane();
pane.add(keuzePanel, BorderLayout.SOUTH);
}
private void voegListenersToe() {
verslagButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand() == "toonVerslag") {
new VerslagFrame("tabel");
}
}
});
tabelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand() == "toonTabel") {
WeersMetingen data = new WeersMetingen();
data.add(new WeersMeting("10/12/2006", "Lanaken", "+31"));
data.add(new WeersMeting("12/12/2006", "Lanaken", "+30"));
data.add(new WeersMeting("3/2/2006", "Lanaken", "+29"));
data.add(new WeersMeting("4/2/2006", "Lanaken", "+1"));
data.add(new WeersMeting("5/2/2006", "Lanaken", "+15"));
data.add(new WeersMeting("6/2/2006", "Lanaken", "+45"));
data.add(new WeersMeting("7/2/2006", "Lanaken", "+29"));
data.add(new WeersMeting("8/2/2006", "Lanaken", "+31"));
data.add(new WeersMeting("9/2/2006", "Lanaken", "+12"));
data.add(new WeersMeting("10/2/2006", "Lanaken", "+31"));
data.add(new WeersMeting("11/2/2006", "Lanaken", "+10"));
data.add(new WeersMeting("1/2/2006", "Lanaken", "+31"));
data.add(new WeersMeting("2/2/2006", "Lanaken", "+30"));
data.add(new WeersMeting("3/2/2006", "Lanaken", "+29"));
data.add(new WeersMeting("4/2/2006", "Lanaken", "+1"));
data.add(new WeersMeting("5/2/2006", "Lanaken", "+15"));
data.add(new WeersMeting("6/2/2006", "Lanaken", "+45"));
data.add(new WeersMeting("7/2/2006", "Lanaken", "+29"));
data.add(new WeersMeting("8/2/2006", "Lanaken", "+31"));
data.add(new WeersMeting("9/2/2006", "Lanaken", "+12"));
data.add(new WeersMeting("10/2/2006", "Lanaken", "+31"));
data.add(new WeersMeting("11/2/2006", "Lanaken", "+10"));
data.add(new WeersMeting("1/2/2006", "Lanaken", "+31"));
data.add(new WeersMeting("2/2/2006", "Lanaken", "+30"));
data.add(new WeersMeting("3/2/2006", "Lanaken", "+29"));
data.add(new WeersMeting("4/2/2006", "Lanaken", "+1"));
data.add(new WeersMeting("5/2/2006", "Lanaken", "+15"));
data.add(new WeersMeting("6/2/2006", "Lanaken", "+45"));
data.add(new WeersMeting("7/2/2006", "Lanaken", "+29"));
data.add(new WeersMeting("8/2/2006", "Lanaken", "+31"));
data.add(new WeersMeting("9/2/2006", "Lanaken", "+12"));
data.add(new WeersMeting("10/12/2006", "Lanaken", "+31"));
data.add(new WeersMeting("11/2/2006", "Lanaken", "+10"));
new JTableFrame(data);
}
}
});
grafiekButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand() == "toonGrafiek") {
new GrafiekFrame("grafiek");
}
}
});
}
private void toonFrame() {
setSize(450,280);
Dimension d = getToolkit().getScreenSize();
setLocation((d.width-getSize().width)/2,(d.height-getSize().height)/2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
}
main.java
package meting;
import meting.model.WeersMetingen;
import meting.model.WeersMeting;
import meting.view.JTableFrame;
/**
* AWT Sample application
*
* @author
* @version 1.00 06/07/20
*/
public class Main {
public static void main(String[] args) {
// Create application frame.
new TestFrame("OPDRACHT ONT8");
}
}
grafiekFrame.java
package meting;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
public class GrafiekFrame extends JFrame {
private Font font;
private Border border;
public GrafiekFrame(String titel) {
super(titel);
//init();
Label tekstLabel = new Label();
tekstLabel.setAlignment(Label.CENTER);
tekstLabel.setFont(font);
tekstLabel.setText("grafiek");
add(tekstLabel);
toonFrame();
}
//private void init() {
// font = new Font("Sans Serif",Font.PLAIN,14);
// border = BorderFactory.createEtchedBorder(
// EtchedBorder.RAISED, Color.blue, Color.black);
//}
private void toonFrame() {
setSize(450,280);
Dimension d = getToolkit().getScreenSize();
setLocation((d.width-getSize().width)/2,(d.height-getSize().height)/2);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
pack();
setVisible(true);
}
}
VerslagFrame.java
package meting;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
public class VerslagFrame extends JFrame {
private Font font;
private Border border;
public VerslagFrame(String titel) {
super(titel);
//init();
Label tekstLabel = new Label();
tekstLabel.setAlignment(Label.CENTER);
tekstLabel.setFont(font);
tekstLabel.setText("Verslag");
add(tekstLabel);
toonFrame();
}
//private void init() {
// font = new Font("Sans Serif",Font.PLAIN,14);
// border = BorderFactory.createEtchedBorder(
// EtchedBorder.RAISED, Color.blue, Color.black);
//}
private void toonFrame() {
setSize(450,280);
Dimension d = getToolkit().getScreenSize();
setLocation((d.width-getSize().width)/2,(d.height-getSize().height)/2);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
pack();
setVisible(true);
}
}
WeersMeting.java
package meting.model;
public class WeersMeting {
private String datum;
private String plaats;
private String temp;
public WeersMeting (String datum, String plaats, String temp) {
this.datum = datum;
this.plaats = plaats;
this.temp = temp;
}
public String getDatum() {
return datum;
}
public String getPlaats() {
return plaats;
}
public String getTemp() {
return temp;
}
}
JTableFrame.java
package meting.view;
import meting.model.WeersMeting;
import meting.model.WeersMetingen;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
import java.awt.*;
import java.util.List;
import java.util.Vector;
import java.io.Serializable;
public class JTableFrame extends JFrame {
private static final String[] koppen = {"Datum", "Plaats", "Temp"};
private DefaultTableModel model;
private JTable table;
private DefaultTableModel model1;
private JTable table1;
private JButton toevoegButton;
private JButton verwijderButton;
private JButton temp_ifv_tijdButton;
public JTableFrame(WeersMetingen weersmetingen) {
super("Metingen");
maakComponenten();
vulTable(weersmetingen.getData());
stelKolomBreedtesIn();
voegListenersToe();
maakLayout();
toonFrame();
}
private void maakComponenten() {
model = new DefaultTableModel();
table = new JTable(model) {
public Dimension getPreferredScrollableViewportSize() {
return getPreferredSize();
}
};
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
toevoegButton = new JButton("Voeg een meting toe");
verwijderButton = new JButton("Verwijder meting");
temp_ifv_tijdButton = new JButton("temp ifv tijd");
}
private void vulTable(List<WeersMeting> data) {
for (int i= 0; i < koppen.length; i++) {
model.addColumn(koppen[i]);
}
Vector<Serializable> rijData;
for(WeersMeting weersmeting : data) {
rijData = new Vector<Serializable>();
rijData.add(weersmeting.getDatum());
rijData.add(weersmeting.getPlaats());
rijData.add(weersmeting.getTemp());
model.addRow(rijData);
}
}
private void stelKolomBreedtesIn() {
TableColumnModel columnModel = table.getColumnModel();
columnModel.getColumn(0).setMinWidth(70);
columnModel.getColumn(0).setMaxWidth(70);
columnModel.getColumn(1).setMinWidth(70);
columnModel.getColumn(1).setMaxWidth(100);
columnModel.getColumn(2).setMinWidth(40);
columnModel.getColumn(2).setMaxWidth(40);
}
private void voegListenersToe() {
toevoegButton.addActionListener( new ToevoegListener(table, model));
verwijderButton.addActionListener( new VerwijderListener(table, model));
temp_ifv_tijdButton.addActionListener(new Temp_Ifv_TijdListener());
}
private void maakLayout() {
JPanel panel1 = new JPanel();
panel1.add(toevoegButton);
panel1.add(verwijderButton);
JPanel panel2 = new JPanel();
panel2.add(temp_ifv_tijdButton);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
Container content = getContentPane();
content.add(scrollPane, BorderLayout.PAGE_START);
content.add(panel1, BorderLayout.CENTER);
content.add(panel2, BorderLayout.PAGE_END);
}
private void toonFrame() {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setLocation(0,0);
pack();
setVisible(true);
}
}
WeersMetingen.java
package meting.model;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class WeersMetingen {
private List<WeersMeting> data = new ArrayList<WeersMeting>();
public WeersMetingen() {
}
public WeersMetingen(List<WeersMeting> data) {
this.data = data;
}
public List<WeersMeting> getData() {
return Collections.unmodifiableList(data);
}
public WeersMeting getElementAt(int index) {
return data.get(index);
}
public void add(WeersMeting weersmeting) {
data.add(weersmeting);
}
public boolean remove(WeersMeting weersmeting) {
return data.remove(weersmeting);
}
}
ToevoegListener.java
package meting.view;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import java.io.Serializable;
public class ToevoegListener implements ActionListener {
private JTable table;
private DefaultTableModel model;
public ToevoegListener(JTable table, DefaultTableModel model) {
this.table = table;
this.model = model;
}
public void actionPerformed(ActionEvent e) {
int rowIndex = table.getSelectedRow();
Vector<Serializable> vector = new Vector<Serializable>();
vector.add("Datum");
vector.add("Plaats");
vector.add("Temp");
if (rowIndex != -1) {
model.insertRow(rowIndex, vector);
} else {
model.addRow(vector);
}
}
}
VerwijderListener.java
package meting.view;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class VerwijderListener implements ActionListener {
private JTable table;
private DefaultTableModel model;
public VerwijderListener(JTable table, DefaultTableModel model) {
this.table = table;
this.model = model;
}
public void actionPerformed(ActionEvent e) {
int rowIndex = table.getSelectedRow();
if (rowIndex != -1) {
model.removeRow(rowIndex);
}
}
}
Temp_Ifv_TijdListener.java
package meting.view;
import meting.model.WeersMetingen;
import meting.model.WeersMeting;
import meting.view.JTableFrameTemp_Datum;
import meting.TestFrame;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Temp_Ifv_TijdListener implements ActionListener {
public Temp_Ifv_TijdListener() {
}
public void actionPerformed(ActionEvent e) {
}
}
my data-file should look like: (data.dat)
12/06/2006 Lanaken +31
13/06/2006 Lanaken +16
14/06/2006 Lanaken +0
15/06/2006 Lanaken -5
16/06/2006 Lanaken +16
17/06/2006 Lanaken +14
|