public class Prove extends JFrame implements ActionListener { private Button indsæt, slut; //trykknapper til hhv. at indsætte i databasen og afslutte private TextField nr, navn; //tekstfelter til hhv. varenr og -navn
cP.add(new Label("vare nr")); //skriv ledeteksten 'vare nr' nr= new TextField(10); //definer og tilføj tekstfeltet nr cP.add(nr);
cP.add(new Label("vare navn")); //do. for 'vare navn' navn= new TextField(10); //.. cP.add(navn);
indsæt= new Button("indsæt"); //definer og tilføj indsæt-knappen cP.add(indsæt); indsæt.addActionListener(this); //registrer indsæt-knappen, så tryk på //den kan opfanges
slut= new Button("slut"); //definer og tilføj slut-knappen cP.add(slut); slut.addActionListener(this); //registrer slut-knappen, så tryk på den //kan opfanges }
public void actionPerformed(ActionEvent e) //metode, der kaldes automatisk, når brugeren trykker på én af de registrerede //trykknapper (indsæt eller slut). { if (e.getSource()==indsæt) //hvis det var indsætknappen { try {
//konstruer, send og udfør flg. sql-sætning: //INSERT INTO vare VALUES ('<intastet vare nr>', '<indtastet vare navn>')
System.out.println(SQL); //udskriv den udførte sql-sætning på konsollen så den evt. kan kontrolleres } catch(Exception ex){System.out.println(ex);} } else if (e.getSource()==slut) //ellers hvis det var slut-knappen { try { con.close(); //nedlæg forbindelsen til myDB } catch (Exception ex){System.out.println(ex);} System.exit(0); //afslut } } }
public class LayoutDemo { static Connection con; public static void main(String[] args) throws Exception
{
//load driveren og opret et forbindelsesobjekt til myDB Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:myDB");
JFrame frame = new JFrame ("Layout Manager Demo"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
JTabbedPane tp = new JTabbedPane(); //tp.addTab ("Oversigt", new IntroPanel()); //tp.addTab ("Spm 3", new FlowPanel()); //tp.addTab ("Spm 4", new BorderPanel()); //tp.addTab ("Spm 5", new GridPanel()); //tp.addTab ("Spm 6", new BoxPanel()); tp.addTab ("Spm 7", new Prove(con));
Den angivne sti blev ikke fundet. Exception in thread "main" java.lang.IllegalArgumentException: adding a window t o a container at java.awt.Container.addImpl(Container.java:579) at javax.swing.JTabbedPane.insertTab(JTabbedPane.java:568) at javax.swing.JTabbedPane.addTab(JTabbedPane.java:640) at LayoutDemo.main(LayoutDemo.java:26) Tryk på en vilkårlig tast for at fortsætte . . .
Det har jeg allerede forsøgt - hvilket giver følgende fejl:
Prove.java:20: cannot resolve symbol symbol : method setTitle (java.lang.String) location: class Prove setTitle("Tilføj varer"); ^ Prove.java:22: cannot resolve symbol symbol : method getContentPane () location: class Prove Container cP= getContentPane(); //referer til 'contentPane'-laget med cP ^ 2 errors
public class LayoutDemo { static Connection con; public static void main(String[] args) throws Exception
{ /* //load driveren og opret et forbindelsesobjekt til myDB Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:myDB"); */ JFrame frame = new JFrame ("Layout Manager Demo"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setTitle("Jeg har glemt hvad title er.. - skriv den selv"); JTabbedPane tp = new JTabbedPane(); //tp.addTab ("Oversigt", new IntroPanel()); //tp.addTab ("Spm 3", new FlowPanel()); //tp.addTab ("Spm 4", new BorderPanel()); //tp.addTab ("Spm 5", new GridPanel()); //tp.addTab ("Spm 6", new BoxPanel()); tp.addTab ("Spm 7", new Prove(con));
public class Prove extends JPanel implements ActionListener { private Button indsæt, slut; //trykknapper til hhv. at indsætte i databasen og afslutte private TextField nr, navn; //tekstfelter til hhv. varenr og -navn
add(new Label("vare nr")); //skriv ledeteksten 'vare nr' nr= new TextField(10); //definer og tilføj tekstfeltet nr add(nr);
add(new Label("vare navn")); //do. for 'vare navn' navn= new TextField(10); //.. add(navn);
indsæt= new Button("indsæt"); //definer og tilføj indsæt-knappen add(indsæt); indsæt.addActionListener(this); //registrer indsæt-knappen, så tryk på //den kan opfanges
slut= new Button("slut"); //definer og tilføj slut-knappen add(slut); slut.addActionListener(this); //registrer slut-knappen, så tryk på den //kan opfanges }
public void actionPerformed(ActionEvent e) //metode, der kaldes automatisk, når brugeren trykker på én af de registrerede //trykknapper (indsæt eller slut). { if (e.getSource()==indsæt) //hvis det var indsætknappen { try {
//konstruer, send og udfør flg. sql-sætning: //INSERT INTO vare VALUES ('<intastet vare nr>', '<indtastet vare navn>')
System.out.println(SQL); //udskriv den udførte sql-sætning på konsollen så den evt. kan kontrolleres } catch(Exception ex){System.out.println(ex);} } else if (e.getSource()==slut) //ellers hvis det var slut-knappen { try { con.close(); //nedlæg forbindelsen til myDB } catch (Exception ex){System.out.println(ex);} System.exit(0); //afslut } } }
Hvordan kan det være, at hvis jeg enable de andre faneblade...Så ligger det faneblad som hedder Prove ovenpå de andre første jeg går dem alle igennm, men efter at jeg har været på den "side" hvor den skal stå, så er de andre igen ok? Forstår du hvad jeg mener?
Hvis man kigger på hierarkiet til JFrame så ser det sådan ud: (Ser sikkert dumt ud hvis ikke det vises med en monospace font - f.eks. courier..) java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--java.awt.Window | +--java.awt.Frame | +--javax.swing.JFrame
Mens JPanel ser sådan ud: java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.JPanel
ok, men hvad mener du med det - dit flotte skema? Er vist ikke så skarp til java som jeg håbede...:)) - og hvad mit andet problem - hvorfor skriver det ovenpå alle de andre faneblade?
Ok, takker...Du har i hvert fald løst det største problem....
Måske du Arne kan hjælpe mig med et sidste?
Hvordan kan det være, at hvis jeg enable de andre faneblade...Så ligger det faneblad som hedder Prove ovenpå de andre første jeg går dem alle igennm, men efter at jeg har været på den "side" hvor den skal stå, så er de andre igen ok? Forstår du hvad jeg mener?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.