JAVA Probleem
Ik wil bij de class naamKnopHandler de naam returnen, alleen hij weergeeft de volgende error message:
Quote:
error: cannot return a value from method whose result type is void
return naam;
return naam;
Wat kan ik hier aan doen?
Code (php)
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
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
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Toets_2 extends JFrame
{
public static void main(String[] args) {
JFrame frame = new Toets_2();
frame.setSize(400, 400 );
frame.setLocation( 500, 500 );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setTitle( "Cijferlijst Studenten" );
JPanel paneel = new Paneel();
frame.setContentPane( paneel );
frame.setVisible( true );
}
}
class Student {
private String naam;
private Datum gebdatum;
public Student( String naam, Datum gebdatum ) {
this.naam = naam;
this.gebdatum = gebdatum;
}
public String getNaam() {
return naam;
}
public void setNaam( String naam ) {
this.naam = naam;
}
public Datum getGebdatum() {
return gebdatum;
}
public String toString() {
return naam + ", geboren op " + gebdatum.toString();
}
}
class Datum {
private int dag, maand, jaar;
public Datum( int dag, int maand, int jaar ) {
this.dag = dag;
this.maand = maand;
this.jaar = jaar;
}
public String toString() {
return dag + "-" + maand + "-" + jaar;
}
}
class Resultaat {
private String vak;
private double cijfer;
public Resultaat( String vak, double cijfer ) {
this.vak = vak;
this.cijfer = cijfer;
}
public double getCijfer() {
return cijfer;
}
public String toString() {
return String.format( "%-20s %4.1f", vak, cijfer );
}
}
class Paneel extends JPanel
{
private JButton naamknop, datumknop;
public Paneel()
{
naamknop = new JButton( "Naam" );
naamknop.addActionListener( new naamKnopHandler() );
datumknop = new JButton("Datum");
datumknop.addActionListener(new datumKnopHandler() );
add(naamknop);
add(datumknop);
}
class naamKnopHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
return naam;
}
}
class datumKnopHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
}
}
}
import java.awt.*;
import java.awt.event.*;
public class Toets_2 extends JFrame
{
public static void main(String[] args) {
JFrame frame = new Toets_2();
frame.setSize(400, 400 );
frame.setLocation( 500, 500 );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setTitle( "Cijferlijst Studenten" );
JPanel paneel = new Paneel();
frame.setContentPane( paneel );
frame.setVisible( true );
}
}
class Student {
private String naam;
private Datum gebdatum;
public Student( String naam, Datum gebdatum ) {
this.naam = naam;
this.gebdatum = gebdatum;
}
public String getNaam() {
return naam;
}
public void setNaam( String naam ) {
this.naam = naam;
}
public Datum getGebdatum() {
return gebdatum;
}
public String toString() {
return naam + ", geboren op " + gebdatum.toString();
}
}
class Datum {
private int dag, maand, jaar;
public Datum( int dag, int maand, int jaar ) {
this.dag = dag;
this.maand = maand;
this.jaar = jaar;
}
public String toString() {
return dag + "-" + maand + "-" + jaar;
}
}
class Resultaat {
private String vak;
private double cijfer;
public Resultaat( String vak, double cijfer ) {
this.vak = vak;
this.cijfer = cijfer;
}
public double getCijfer() {
return cijfer;
}
public String toString() {
return String.format( "%-20s %4.1f", vak, cijfer );
}
}
class Paneel extends JPanel
{
private JButton naamknop, datumknop;
public Paneel()
{
naamknop = new JButton( "Naam" );
naamknop.addActionListener( new naamKnopHandler() );
datumknop = new JButton("Datum");
datumknop.addActionListener(new datumKnopHandler() );
add(naamknop);
add(datumknop);
}
class naamKnopHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
return naam;
}
}
class datumKnopHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
}
}
}
Volgens mij staat de oplossing letterlijk in de foutmelding.
Waar zou ik void in moeten veranderen?
Ik moet dus void in iets zien te veranderen, alleen ben even totaal leeg over wat.
String?
Nee, dat had ik dus al geprobeerd, maar dat werkt niet.
is een event wat wordt uitgevoerd.. een event heeft normaal gesproken nooit een return maar een "actie" (vandaar void). In dit geval zou je dus iets kunnen doen met de 'naam', bijvoorbeeld een (j)Textfield.setText(); gebruiken.
Ik snap btw ook niet waarom voor elke ActionListener een aparte class maakt!?
edit; bovenstaande setter hoort gewoon void te zijn.
Gewijzigd op 10/02/2012 10:41:30 door Jaron T