JFrame + JPanel

Status
Niet open voor verdere reacties.

WiCkID1983

Gebruiker
Lid geworden
20 jun 2009
Berichten
6
Beste mensen,

Ik ben een Java newbie en vroeg me af wat er fout is aan mijn programma. Het compileert wel goed mar runt niet goed.

De bedoeling is dat er een venster(JFrame) en Jpanel(inhoud inclusief knop en textveld) wordt weergegeven.

//Opstartklasse voor een applicatie
import javax.swing.*;

public class vb0201 extends JFrame{
public static void main( String[] args){
JFrame frame = new vb0201();
frame.setSize(400, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Voorbeeld JFrame + JPanel");
JPanel paneel = new Paneel();
frame.setContentPane (paneel);
frame.setVisible(true);
frame.setLocation(200,300);
}

public class Paneel extends JPanel{
private JButton knop;
private JTextField textvak;

public Paneel(){
knop = new JButton("Klik");
textvak = new JTextField(10);
add(knop);
add(textvak);
}
}
}
 
Als je in plaats van JFrame frame = new vb0201();, JFrame frame = new JFrame(); doet, doet hij het dan?
 
Nee dan doet hij het nog niet.

Ik krijg nog steeds een foutmelding bij het runnen:

"java.lang.NoSuchMethodError: main
Exception in thread "main" "
 
Ik zie ook geen import java.awt.*; naast import javax.swing.*; staan die je nodig hebt voor JPanel. Heb je een aparte klasse gemaakt voor het paneel?
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


Zet al deze import statements er eens boven... Het kan nooit kwaad, maar er staat maar één 'import' bij jou. En JPanel werkt anders niet zoals Java Dummie net zei.
 
Ofjah, .Event is niet nodig want die gebruik je niet in je programma
 
Volgens mijn boek is java.swing.*; wel genoeg voor mijn programma.
En als ik die "java.awt" erbij doe krijg ik dezelfde output.

En trouwens die awt is overbodig voorzover ik weet. Want je gebruikt Of awt Of Swing.
Swing is uitgebreider en awt is beetje oud.
 
Code:
//Opstartklasse voor een applicatie
import javax.swing.*;
import java.awt.*;

public class vb0201 extends JFrame
{

public static void main( String[] args)
{
JFrame frame = new JFrame();
frame.setSize(400, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Voorbeeld JFrame + JPanel");

JPanel paneel = new JPanel();
frame.setContentPane(paneel);
frame.setLocation(200,300);
JButton knop = new JButton("Klik");
JTextField textvak = new JTextField(10);
paneel.add(knop);
paneel.add(textvak);
frame.setVisible(true);
}

}

Dit werkt wel. Het drukt een venster af met een knop in en een tekstveld...


Ik heb wel een beetje afgeweken van jouw 2 klassen, maar ik zag dan ook echt niet in waarom je twee klassen zou gebruiken? Dat is het jezel moeilijk maken denk ik.
 
Laatst bewerkt:
Volgens mijn boek is java.swing.*; wel genoeg voor mijn programma.
En als ik die "java.awt" erbij doe krijg ik dezelfde output.

En trouwens die awt is overbodig voorzover ik weet. Want je gebruikt Of awt Of Swing.
Swing is uitgebreider en awt is beetje oud.

swing is gebaseerd op awt. JFrame, JButton dat zijn allemaal functies die overgenomen zijn uit awt. Er is gewoon een 'J' voor geplaats opdat het herkenbaar zou zijn dat ze van swing zijn en niet van awt.
 
En mag ik ook vragen welk programma er zo gek was om dat te succesvol te compileren?
 
Dank je wel Tranceftw :D hij doet het.

Mijn IDE is JCreator LE 4.5 en mijn JDK is 1.6 update 14

Maar zou je misschien gebruik willen maken van de klassen, want dan hou ik me aan de lijn van het het boek. Want nu wordt mij uitgelegd over constuctor. Dat is waarschijnlijk ook wel de rede ervan.
 
Laatst bewerkt:
Lijkt me niet slecht... Maar heb ik met dat stukje code jouw probleem opgelost?

EDIT: sorry, was blind had niet gezien dat je die vraag al had beantwoord :P
 
Dank je wel Tranceftw :D hij doet het.

Mijn IDE is JCreator LE 4.5 en mijn JDK is 1.6 update 14

Als je nog vragen hebt... Je kan ze altijd hier posten :P Ik kan het zelf nog niet zo goed (java) maar door jou te helpen leer ik zelf bij. Als je je msn ofso wil geven aan me, dat kan altijd. Ik ben daarop heel goed bereikbaar want zit er redelijk veel op. Maar dat is jouw keuze natuurlijk. Je moet hem maar sturen via een bericht.

Ik zie wel wat je doet.

grts
 
Maar zou je misschien gebruik willen maken van de klassen, want dan hou ik me aan de lijn van het het boek. Want nu wordt mij uitgelegd over constuctor. Dat is waarschijnlijk ook wel de rede van het gebruik van die klasse.

p.s. Ik kan geen prive bericht sturen, maar zou wel handig zijn als me kan helpen via msn.
 
EDIT: weg ermee :D


zeg als je het hebt opgeslaan, dan verwijder ik dit weer :P Niet iedereen heft hoet te weten
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan