|
| convertere object til string eller hva er ~ Fra : havmaage |
Dato : 17-07-02 23:34 |
|
Jeg er ny i java og sidder og nørkler lidt for sjov med at hente data fra en
MS Access db og vise dem(1 record) i et tekstfelt.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.Vector;
public class FirstAppl extends Frame {
// The initial width and height of the frame
public static int WIDTH = 250;
public static int HEIGHT = 130;
public FirstAppl(String lab, String qres) {
super(lab);
setLayout(new GridLayout(4,1));
add(new JLabel("Swing Components are like AWT 1.1"));
JButton top = new JButton("Top");
top.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("top");
}
});
final TextField Te= new TextField();
Te.setText(qres);
add(Te);
final JButton bottom = new JButton("Bottom");
add(top);
add(bottom);
bottom.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if( e.getSource() == bottom )
{
System.out.println(Te.getText());
}
}
});
}
public static void main(String s[]) {
Access ac = new Access();
ac.Access();
try {
ac.open();
} catch (SQLException e) {
e.printStackTrace();
}
Vector res = new Vector();
res = ac.doQuery("SELECT fornavn FROM person WHERE
fornavn='simon'");
//String[] result;
if (res != null && res.size() > 0) {
for (int i = 0; i < res.size(); i++) {
//System.out.println(res.elementAt(i));
String[] result=res.elementAt(i); # hvordan for jeg sat
String result = med resultet af res.elementAt(i)
}
}
FirstAppl frame = new FirstAppl("First Swing Application",result);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
frame.setSize(WIDTH, HEIGHT);
frame.show();
}
}
Jeg før følgende fejl under kompilering
C:\java stuff\sampledir\FirstAppl.java:63: incompatible types
found : java.lang.Object
required: java.lang.String[]
String[] result=res.elementAt(i);
^
C:\java stuff\sampledir\FirstAppl.java:73: cannot resolve symbol
symbol : variable result
location: class FirstAppl
FirstAppl frame = new FirstAppl("First Swing Application",result);
^
2 errors
Process completed.
Er der nogen der kan hjælpe mig videre herfra .
Hilsen Simon
| |
Lars Dam (18-07-2002)
| Kommentar Fra : Lars Dam |
Dato : 18-07-02 07:22 |
|
On Thu, 18 Jul 2002 00:34:00 +0200, "havmaage" <shj@get2net.dk> wrote:
>Jeg er ny i java og sidder og nørkler lidt for sjov med at hente data fra en
>MS Access db og vise dem(1 record) i et tekstfelt.
> Vector res = new Vector();
> res = ac.doQuery("SELECT fornavn FROM person WHERE
>fornavn='simon'");
> //String[] result;
Sttring result; // se nedenfor
> if (res != null && res.size() > 0) {
>
> for (int i = 0; i < res.size(); i++) {
>
> //System.out.println(res.elementAt(i));
> String[] result=res.elementAt(i); # hvordan for jeg sat
>String result = med resultet af res.elementAt(i)
Din string gælder kun indenfor dette scope. Dvs. at du kan bruge
variablen inden for det 'inderste' sæt tuborgklammer. Definer result
udenfor som vist.
> }
>}
>
>Jeg før følgende fejl under kompilering
>
>C:\java stuff\sampledir\FirstAppl.java:63: incompatible types
>found : java.lang.Object
>required: java.lang.String[]
> String[] result=res.elementAt(i);
elementAt returnere et object, som du prøver at smide over i et streng
array. Dette kan du ikke direkte, du bliver nødt til at eksplicit
fortælle kompileren at dit objekt faktisk er et stren array, vha.
casting:
String[] result=(String[])res.elementAt(i);
^
>Hilsen Simon
>
vh. ld
| |
Michael Berg (01-08-2002)
| Kommentar Fra : Michael Berg |
Dato : 01-08-02 21:49 |
|
Hej,
> Jeg før følgende fejl under kompilering
>
> C:\java stuff\sampledir\FirstAppl.java:63: incompatible types
> found : java.lang.Object
> required: java.lang.String[]
> String[] result=res.elementAt(i);
> ^
Vector.elementAt() returnerer et Object af en type som compileren af gode
grunde ikke kan bestemme på kompileringstidspunktet. Du kan ikke assigne et
Object til en array, med mindre du caster det (fordi du ved bedre end
compileren):
String result[] = (String[])res.elementAt(i);
Forudsætningen er selvfølgelig at elementAt(0) rent faktisk indeholder en
array af strenge. Hvis elementet bare er en enkelt streng så gør følgende:
String result = (String)res.elementAt(i);
Mvh
/Michael
| |
|
|