THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => Java => Topic started by: Axel on June 13, 2006, 22:22:08 pm



Title: JBuilder, swing, awt κλπ
Post by: Axel on June 13, 2006, 22:22:08 pm
Προσπαθω να φτιαξω ενα GUI για ενα προγραμματακι με τον JBuilder. Ενω οταν παταω να τρεξει η εφαρμογη μου δημιουργει κανονικα το GUI οταν παταω το design μου πεταει τα παρακατω errors

class java.lang.ClassFormatError Incompatible magic value in .class file
Unable to design MyGUI.java.  Make sure that the file is in the current project, does not contain any syntax errors, and that all resources are compiled.

Προσπαθω να βαλω τα διαφορα components του swing μεσω του design αλλα δεν γινεται τπτ. Ξερει κανεις πως στο καλο λειτουργει ολο αυτο; Ποια η διαφορα αναμεσα στο awt και το swing;

Ο κωδικας ειναι ο παρακατω:

Code:
[size=12pt]import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MyGUI extends JFrame {


    public static void main(String args[]) {
        MyGUI frame = new MyGUI();
        frame.setTitle("MyGUI");
        JLabel label = new JLabel("Hey");
        frame.add(label);
       
        WindowListener l = new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        };
        frame.addWindowListener(l);

        frame.pack();

        frame.setVisible(true);
    }

}[/size]


Title: Απ: JBuilder, swing, awt κλπ
Post by: Zarathoustra on June 13, 2006, 22:33:34 pm
Υποψιάζομαι ότι η έκδοση java που χρησιμοποιεί ο jbuilder(1.4 ???) είναι διαφορετική από το JDK που έχεις εγκαταστήσει(1.5 ??).Οι κλάσεις που έχουν γίνει compile για 1.5 είναι ασύμβατες με την έκδοση 1.4.

Το swing είναι υψηλότερου επιπέδου από το AWT.Δεν χρειάζεται να ασχοληθείς καθόλου με το AWT(πλέον χρησιμοποιείται απλά ως "βάση" για το swing).


Title: Απ: JBuilder, swing, awt κλπ
Post by: Cyberkat on June 13, 2006, 22:42:25 pm
Το δοκίμασα σε απλό περιβάλλον JAVA 1.5. (JBUILDER SUCKS!!!)
Και δούλεψε μια χαρά.

Αυτό που μπορείς να δοκιμάσεις είναι να χρησιμοποιήσεις αντί για τα JFrame και JLabel (συναρτήσεις του swing) τα απλά Frame και Label (συναρτήσεις του παλιού awt). Σε εμένα δούλεψε και έτσι.

import java.awt.*;
import java.awt.event.*;

public class MyGUI extends Frame {


    public static void main(String args[]) {
        MyGUI frame = new MyGUI();
        frame.setTitle("MyGUI");
        Label label = new Label("Hey");
        frame.add(label);
       
        WindowListener l = new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        };
        frame.addWindowListener(l);

        frame.pack();

        frame.setVisible(true);
    }

}


Title: Απ: JBuilder, swing, awt κλπ
Post by: Axel on June 14, 2006, 01:28:31 am
Ο JBuilder που εχω εχει default την 1.4 αλλα του εχω κανει import την 1.5 που εγκατεστησα με το χερι.

Το θεμα δεν ειναι οτι δε μου δουλευει. Μου εμφανιζει κανονικα το παραθυρο που του λεω. Το προβλημα ειναι οτι δεν μπορω να χρησιμοποιησω το Design του JBuilder (κατω κατω εχει Source Design Bean Doc History). Απο εκει οταν παω να βαλω ενα component αυτοματα δεν το δεχεται και δεν ξερω το γιατι..

Τελικα το εκανα στο χερι.. Thanks παντως. Καταλαβα και τη διαφορα των awt και swing. :)


Title: Απ: JBuilder, swing, awt κλπ
Post by: Zarathoustra on June 14, 2006, 05:19:21 am
Quote
Ο JBuilder που εχω εχει default την 1.4 αλλα του εχω κανει import την 1.5 που εγκατεστησα με το χερι.

Δεν εννοώ το JDK ή JRE που εγκατέστησες στον jbuilder για να κάνεις compile  και να τρέχεις προγράμματα, αλλά το JRE το οποίο χρησιμοποιεί εσωτερικά ο ίδιος o jbuilder(το οποίο έχω την εντύπωση ότι είναι πάντα το 1.4 και δεν μπορείς να το αλλάξεις).Η υπόθεσή μου είναι ότι ο designer ( πρόγραμμα  που τρέχει με java 1.4) προσπαθεί να φορτώσει κλάση φτιαγμένη για 1.5,με αποτέλεσμα να παρουσιάζεται το σφάλμα που αναφέρεις.

Τελοσπάντων η Borland έχασε τον πόλεμο των Java IDE, αν ενδιαφέρεσαι για εφαρομογές Swing καλό designer έχει το NetBeans (open-source της sun) αλλά και το Eclipse


Title: Re: JBuilder, swing, awt κλπ
Post by: kostas578 on June 14, 2006, 13:28:40 pm
Δοκίμασε με τον JBuilder 2006, υπάρχει στο dc.


Title: Απ: JBuilder, swing, awt κλπ
Post by: Axel on June 14, 2006, 13:41:18 pm
Ειχα σκοπο να κατεβασω τον JBuilder 2006, αλλα για την ωρα ασυρματο γιοκ... Θα κοιταξω και τον eclipse παντως μολις φτιαξει. Για την ωρα εχω κατι προβληματα με actionListeners που μολις παω να τους χρησιμοποιησω βγαζει οτι η κλαση μου δεν ειναι abstract...


Title: Απ: JBuilder, swing, awt κλπ
Post by: Axel on June 14, 2006, 14:40:58 pm
Ενα απλο κουμπακι που θα το πατας και θα τερματιζει το προγραμμα προσπαθω να κανω αλλα μου πεταει αυτο το error...

ExitButton.java:5: ExitButton is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener

public class ExitButton extends Frame implements ActionListener {
       ^
1 error

import java.awt.*;
import java.awt.event.*;
import com.sun.media.controls.VFlowLayout;

public class ExitButton extends Frame implements ActionListener {


    Panel panel1 = new Panel();
    Button buttonExit = new Button();
    VFlowLayout verticalFlowLayout = new VFlowLayout();


    public static void main(String args[]) {
        ExitButton eb = new ExitButton();

        WindowListener windowListener = new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        };
        eb.addWindowListener(windowListener);

        eb.setVisible(true);
        eb.pack();
    }

    public ExitButton() {
        createGUI();
    }

    private void createGUI() {
        this.setTitle("MyGUI");
        panel1.setLayout(verticalFlowLayout);
        this.add(panel1, BorderLayout.WEST);
        buttonExit.setLabel("Exit");
        buttonExit.setEnabled(true);
        buttonExit.addActionListener(this);

       
        panel1.add(buttonExit);
    }

    private void actionPerfomed(ActionEvent ae) {
        String action = ae.getActionCommand();
        if (action.equals("Exit")) {
            System.exit(0);
        }
    }

}


Title: Απ: JBuilder, swing, awt κλπ
Post by: Zarathoustra on June 14, 2006, 21:17:38 pm
private void actionPerfomed(ActionEvent ae)

Έπρεπε να είναι public void actionPerfomed(ActionEvent ae)



Title: Απ: JBuilder, swing, awt κλπ
Post by: Axel on June 14, 2006, 21:35:42 pm
Το εχω δοκιμασει και public ,αλλα το ιδιο error παιρνω.


Title: Απ: JBuilder, swing, awt κλπ
Post by: Zarathoustra on June 14, 2006, 22:11:17 pm
Έπεσα και εγώ στην παγίδα.

Έπρεπε να είναι
public void actionPerformed(ActionEvent ae)

Καλύτερα να αφήνεις τον IDE να σου κάνει αυτός implement τις abstract κλάσεις(γλυτώνεις και από τα ορθογραφικά)


Title: Απ: JBuilder, swing, awt κλπ
Post by: Axel on June 14, 2006, 22:57:37 pm
Κλασσικο @#$$%^%$^ τυπογραφικο λαθος οταν κανεις προγραμματισμο... Τον κωδικα τον εχω κοιταξει τοσες φορες, αυτο το r δεν το ειχα προσεξει. Ο JBuilder δεν μου εβγαζε καποιο λαθος εκει, ουτε μου εβγαλε μηνυμα για να κανει implement τον ActionListener.

Τωρα δουλευει μια χαρα. Thanks Zarathoustra!


Title: Απ: JBuilder, swing, awt κλπ
Post by: Axel on July 06, 2006, 16:52:16 pm
Ωραιο προγραμματακι τελικα ο Eclipse. Μαζι με τον swt designer σου γλυτωνουν πολυ χρονο.

Μηπως τυχαινει να εχει κανεις αγορασμενη την 5.0.0 εκδοση του designer?