Multidesk.be » Forums » Java » Java uitvoeren in een compiler

  • Pagina
  • 1 van 1
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door Datissem op woensdag 21 november 2007 om 13:55:15.
Datissem heeft nog geen avatar toegevoegd
Multiviteit: 115
Ik heb mij onlangs een boek aangeschaft(java voor studenten, programeren in java met swing). In het boek wordt aangeraden om j2sdk1.4.2_04 tesamen met Netbeans IDE 3.6 te installeren. nu wil ik nog werken als een ev. student om de javacode een beetje machtig te worden, dus ik schrijf de code zelf. maar nu is het probleem ials volgt, ik zal een voorbeeld laten zien, verkort natuurlijk:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DrawExample extends JFrame
implements ActionListener {

private JButton button;
private JPanel panel;...........

Ik krijg dat in geen enkel programma gerund(netbeans,jcreator,dos prompt, eclipse) het probleem is wschlk dat hij het importeren niet uitvoert.
Eclipse moet ik denkelijk laten varen omdat die overgeschakeld zijn op SWT ipv AWT, of kan je daar ook nog werken met AWT, netbeans 5.5.1. creeert alles wat ik graag zou willen met aanklikprogramma's en JCreator geeft foutmeldingen zoveel als mogelijk is.
Mijn conclusie denk ik, het is uit te voeren omdat ik in het begin alle code's kon aanspreken en uitvoeren, dus ik moet iets verbinden of downloaden om die imports uit te voeren dacht ik. Wat denkt u?

^ Reactie #1 geschreven door thekid op woensdag 21 november 2007 om 16:32:59.
thekid's avatar
Multiviteit: 5273
Moderator
een volledige broncode zou u al veel kunnen vooruithelpen in het oplossen van uw problemen

dit bovenstaande is "brol" in de zin van, we kunnen het zelf niet testen of we kunnen u niet zeggen waar u fout zit want we hebben maar een klein deeltje van de broncode!!

Programmeren is precisie, iedere keer met halve foutmeldingen en halve broncodes afkomen zal u zeker niet vooruithelpen!
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #2 geschreven door Datissem op woensdag 21 november 2007 om 19:43:42.
Datissem heeft nog geen avatar toegevoegd
Multiviteit: 115
Ziehier de broncode, test maar eens uit als het kan:
CODE - Java
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4.  
  5. public class DrawExample extends JFrame
  6.         implements ActionListener {
  7.  
  8.         public static void main(String[] args) {
  9.                 DrawExample Frame = new DrawExample();
  10.                 frame.setSize(400, 300);
  11.                 frame.createGUI();
  12.                 frame.show();
  13.  
  14. }
  15.  
  16.         private void createGUI() {
  17.                 setDefaultCloseOperation(EXIT_ON_CLOSE);
  18.                 Container window = getContentPane();
  19.                 window.setLayout(new FlowLayout() );
  20.  
  21.                 panel = new JPanel();
  22.                 panel.setPreferredSize(new Demension(300, 200));
  23.                 panel.setBackground(color.white);
  24.                 window.add(panel);
  25.  
  26.                 button = new JButton("Press me");
  27.                 window.add(button);
  28.                 button.addActionListener(this);
  29.  
  30. }
  31.  
  32.         public void actionPerformed(ActionEvent event) {
  33.                 Graphics paper = panel.getGraphics();
  34.                 paper.drawLine(0, 0, 100, 100);
  35.         }
  36. }


Bedankt en hopelijk succes.

Opmerking van de crew

Om het overzicht te bewaren kan je bij berichten met veel code gebruik maken van de code tags ([code]).
SMG
^ Reactie #3 geschreven door thekid op woensdag 21 november 2007 om 20:27:29.
thekid's avatar
Multiviteit: 5273
Moderator
Ik denk dat je een hoop dingen door elkaar haalt hoor, nu zo kreeg ik het wel werkende

(klassenaam: DrawExample.java)
CODE
  1.  
  2. package jadatissem;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6.  
  7. class DrawExample extends JFrame
  8.     implements ActionListener {
  9.  
  10.     JPanel panel = new JPanel();
  11.     JButton button = new JButton("Press me");
  12.    
  13.     public DrawExample()
  14.     {
  15.         setSize(400, 300);
  16.         createGUI();
  17.         this.setVisible(true);
  18.     }
  19.  
  20.     private void createGUI() {
  21.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  22.         Container window = getContentPane();
  23.         window.setLayout(new FlowLayout() );
  24.  
  25.         panel.setPreferredSize(new Dimension(300, 200));
  26.         panel.setBackground(Color.white);
  27.         window.add(panel);
  28.  
  29.         window.add(button);
  30.         button.addActionListener(this);
  31.     }
  32.  
  33.     public void actionPerformed(ActionEvent event) {
  34.         Graphics paper = panel.getGraphics();
  35.         paper.drawLine(0, 0, 100, 100);
  36.     }
  37. }
  38.  


(klasse: Main.java)
CODE
  1.  
  2. package jadatissem;
  3.  
  4. /**
  5.  *
  6.  * @author Administrator
  7.  */
  8. public class Main {
  9.    
  10.     public static void main(String args[])
  11.     {
  12.         DrawExample t = new DrawExample();
  13.     }
  14.  
  15. }
  16.  


de mainklasse wordt uitgevoerd in de main.java, deze roept een nieuwe DrawExample aan, deze gebruikt uwen constructor om zich aan te passen, en daarna kunde op het knopje klikken om een lijn te trekken



*Gecorrigeerd:
- Fouten in variabelen declaratie/gebruik:

Sommige variabelen declareer je met een hoofdletter, maar later gebruik je een kleine letter om deze te gebruiken, Java is hoofdlettergevoelig, dus is Frame != frame

- Window klasse en Main klasse gesplits:

't is gewoon makkelijker zo, alle/zoveel als mogelijk klasses apart per bestand schrijven in dezelfde source directory als de main en de benaamde package (in mijn voorbeeld hierboven package jadatissem;)

- Vergeten enkele dingen te declareren:

panel = new JPanel() ?? vanwaar komt dit panel, ik heb hem nu privaat in de DrawExample klasse geplaatst
button = JButton("Press me") ?? opnieuw deze variable wordt niet gedeclareert, staat ook privaat in de drawexample klasse


In uwe main in de DrawExample klasse ga je trouwens zelf nog eens een frame gaan declareren, is niet nodig, en je ontbrak een constructor voor DrawExample (public DrawExample() { }) deze heb ik erbij gemaakt, deze werkt perfect bij bij in Netbeans ;)


heb je nog vragen bij de aangegeven correcties, laat maar komen ;)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #4 geschreven door Datissem op donderdag 22 november 2007 om 10:22:35.
Datissem heeft nog geen avatar toegevoegd
Multiviteit: 115
Zweet, zweet, de eerste code heb ik uitgevoerd:
New project-general-java Application-Project name hier ingevoerd "DrawExample"-create main class hier ingevoerd "drawexample.DrawExample" de code die u mij opgestuurd heeft er in geplaatst die is correct maar als ik run uitvoer zegt hij"class drawexample.DrawExample"class not have a main method.
Hier doe ik iets verkeerd, ik veronderstel dat de tweede code Main.java ergens moet uitgevoerd worden maar hoe en waar.
Sorry voor de vragen maar zoals ge reeds opgemerkt hebt is hier "toeters en bellen" die langs alle kanten komen van toepassing, indien te veel van uw geduld vereist zeg dan gerust: ga een cursus volgen.
^ Reactie #5 geschreven door thekid op donderdag 22 november 2007 om 13:30:39.
thekid's avatar
Multiviteit: 5273
Moderator
Wel, laat me het zo zeggen. Als je een java programma maakt in netbeans doe je:
-> File -> new project
ge kies java application uit, ie maakt dan een lege Main klasse aan, die niet in een window beheerd is, en daarbij kan je dan in het bronpakket nieuwe klasses gaan steken (die DrawExample bvb). In de mainklasse van je project roep je dan je andere klasses aan, en dit doe ik via bovenstaande main klasse, ik roep gewoon een nieuwe DrawExample klasse op, en deze wordt weergegeven dmv van zijn constructor, all goes automatic ;) :D
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #6 geschreven door Datissem op vrijdag 23 november 2007 om 14:28:45.
Datissem heeft nog geen avatar toegevoegd
Multiviteit: 115
Goed, we zullen dat gaan uitvoeren. Het strafste van de hele affaire moet ik bekennen is dat ik nu met de Netbeans 3.6 alle codes terug kan uitvoeren na het intikken in een editor en opslaan als DrawExample.java. Maar in NetBeans IDE 6.0 kan ik die files dan weer niet aanroepen. Da's dan het grote raadsel, ook van het creeren van de vorige files zoals dat fameuze DrawExample, dat heeft een week niet willen werken en dan ineens toch wel,s snap dat maar eens.
  • Pagina
  • 1 van 1

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen