Beste mensen,
Ik ben inmiddels al een tijdje bezig om een programma te maken om een tekstbestandje uit te lezen. Ik ben nog super bekend met java, maar het gaat goed. Door dit programma steeds uit te breiden hoop ik op ten duur mijn einddoel te bereiken. Het is dus de bedoeling dat er een tekstbestand wordt uitgelezen en dat dit getoont wordt in outputArea, wat een JTextArea is. hij toont nu alleen het laatste getal. Het bestand moet wel ingelezen worden per regel, want op elke regel staat een getal. Met deze verschillende getallen wordt een berekening uitgevoerd. Hier zijn de bestanden:
file: FileDemonstrationTest
file: FileReader
file:FlowLayoutFrame
Het probleem zit hem dus in ReadFile. Ik heb al gekeken of er een andere oplossing is dmv van een returnvalue en die dan te gebruiken in FlowLayoutFrame, maar dit kreeg ik niet werkende. Daarom probeer ik het nu op deze manier, wat dus bijna werkt, maar nog niet helemaal.
alvast bedankt voor de tips.
Ik ben inmiddels al een tijdje bezig om een programma te maken om een tekstbestandje uit te lezen. Ik ben nog super bekend met java, maar het gaat goed. Door dit programma steeds uit te breiden hoop ik op ten duur mijn einddoel te bereiken. Het is dus de bedoeling dat er een tekstbestand wordt uitgelezen en dat dit getoont wordt in outputArea, wat een JTextArea is. hij toont nu alleen het laatste getal. Het bestand moet wel ingelezen worden per regel, want op elke regel staat een getal. Met deze verschillende getallen wordt een berekening uitgevoerd. Hier zijn de bestanden:
file: FileDemonstrationTest
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| package filedemo1;
import javax.swing.JFrame;
public class FileDemonstrationTest
{
public static void main( String args[] )
{
FlowLayoutFrame flowLayoutFrame = new FlowLayoutFrame();
flowLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
flowLayoutFrame.setSize( 300, 375 ); // set frame size
flowLayoutFrame.setVisible( true ); // display frame
} // end main
} // end class FlowLayoutDemo |
file: FileReader
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| package filedemo1;
import java.io.*;
import java.net.*;
import javax.swing.JTextArea;
//import filedemo1.FlowLayoutFrame;
public class FileReader implements Runnable
{
private File file;
private DataInputStream dataStreamIn;
private boolean keepAlive;
private Thread runner;
public FileReader()
{
try
{
file = new File("c:\\numbers.txt");
dataStreamIn = new DataInputStream(new FileInputStream(file));
keepAlive = true;
runner = new Thread(this);
runner.start();
}
catch(IOException ioException) { ioException.printStackTrace(); }
}
public void run()
{
//FlowLayoutFrame flowLayoutFrame = new FlowLayoutFrame();
try
{
while(keepAlive)
{
String input = dataStreamIn.readLine();
if(input == null)
keepAlive = false;
else
{
FlowLayoutFrame.outputArea.setText(String.format(input));
System.out.println(input);
}
}
}
catch(IOException ioException)
{
keepAlive = false;
ioException.printStackTrace();
}
}
public static void main(String[] args)
{
new FileReader();
}
} |
file:FlowLayoutFrame
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
| package filedemo1;
import java.awt.BorderLayout;
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.Container;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.*;
import java.awt.GridLayout;
public class FlowLayoutFrame extends JFrame
{
private JButton leftJButton, centerJButton, rightJButton; // button to set alignment left
private FlowLayout layout; // layout object
private Container container; // container to set layout
public static JTextArea outputArea; // used for output
private JScrollPane scrollPane; // used to provide scrolling to output
private JPanel panel, panel2, panel3;
private JTextField invoer;
private JLabel textarea;
private File file;
private DataInputStream dataStreamIn;
private boolean keepAlive;
private Thread runner;
// set up GUI and register button listeners
public FlowLayoutFrame()
{
super( "StudentPoll" );
panel = new JPanel(); // set up panel
panel2 = new JPanel(); // set up panel
panel3 = new JPanel();
panel.setLayout( new GridLayout());
panel2.setLayout( new GridLayout());
panel3.setLayout( new GridLayout());
//layout = new FlowLayout(); // create FlowLayout
//container = getContentPane(); // get container to layout
//setLayout( layout ); // set frame layout
//layout.setAlignment(FlowLayout.CENTER);
// set up leftJButton and register listener
leftJButton = new JButton( "open file" ); // create Left button
panel2.add(leftJButton);
leftJButton.addActionListener(
new ActionListener() // anonymous inner class
{
// process leftJButton event
public void actionPerformed( ActionEvent event )
{
FileReader filereader = new FileReader();
} // end method actionPerformed
} // end anonymous inner class
); // end call to addActionListener
// set up centerJButton and register listener
centerJButton = new JButton( "Save File" ); // create Center button
panel2.add(centerJButton);
centerJButton.addActionListener(
new ActionListener() // anonymous inner class
{
// process centerJButton event
public void actionPerformed( ActionEvent event )
{
layout.setAlignment( FlowLayout.CENTER );
// realign attached components
layout.layoutContainer( container );
} // end method actionPerformed
} // end anonymous inner class
); // end call to addActionListener
// set up rightJButton and register listener
rightJButton = new JButton( "Exit" ); // create Right button
panel2.add(rightJButton);
rightJButton.addActionListener(
new ActionListener() // anonymous inner class
{
// process rightJButton event
public void actionPerformed( ActionEvent event )
{
System.exit(0);
} // end method actionPerformed
} // end anonymous inner class
); // end call to addActionListener
outputArea = new JTextArea();
// add outputArea to scrollPane
scrollPane = new JScrollPane( outputArea );
panel.add( scrollPane ); // add scrollPane to GUI
textarea = new JLabel("voer getal in");
invoer = new JTextField();
panel3.add(textarea);
panel3.add(invoer);
add(panel,BorderLayout.CENTER);
add(panel2,BorderLayout.SOUTH);
add(panel3,BorderLayout.NORTH);
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
} // end FlowLayoutFrame constructor
private void jbInit() throws Exception {
}
} // end class FlowLayoutFrame |
Het probleem zit hem dus in ReadFile. Ik heb al gekeken of er een andere oplossing is dmv van een returnvalue en die dan te gebruiken in FlowLayoutFrame, maar dit kreeg ik niet werkende. Daarom probeer ik het nu op deze manier, wat dus bijna werkt, maar nog niet helemaal.
alvast bedankt voor de tips.