/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Java 1.4.x og JInternalFrames
Fra : Mikael Nørrelund And~


Dato : 07-05-03 23:40

Hej gruppe,

jeg er stødt ind i et problem, jeg tror skyldes
JInternalFrames.
Programmet virker i jsdk 1.2.x, men ikke i 1.4.x.
Jeg har fundet et eksempel der laver samme fejl
i en af Deitel&Deitels bøger.

Når man prøver at få vist en JInternalFrame, sker
der intet.

Programmet ligger her i et selvudpakkende RAR arkiv:
http://home20.inet.tele.dk/noerrelund/filer/fig13_10.exe

Koden er her:
// Fig. 13.10: DesktopTest.java
// Demonstrating JDesktopPane.
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class DesktopTest extends JFrame {
public DesktopTest()
{
super( "Using a JDesktopPane" );

JMenuBar bar = new JMenuBar();
JMenu addMenu = new JMenu( "Add" );
JMenuItem newFrame = new JMenuItem( "Internal Frame" );
addMenu.add( newFrame );
bar.add( addMenu );
setJMenuBar( bar );

final JDesktopPane theDesktop = new JDesktopPane();
getContentPane().add( theDesktop );

newFrame.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
JInternalFrame frame =
new JInternalFrame(
"Internal Frame",
true, true, true, true );

Container c = frame.getContentPane();
MyJPanel panel = new MyJPanel();

c.add( panel, BorderLayout.CENTER );
frame.setSize(
panel.getImageWidthHeight().width,
panel.getImageWidthHeight().height );
frame.setOpaque( true );
theDesktop.add( frame );
}
}
);

setSize( 500, 600 );
show();
}

public static void main( String args[] )
{
DesktopTest app = new DesktopTest();

app.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
}
);
}
}

class MyJPanel extends JPanel {
private ImageIcon imgIcon;

public MyJPanel()
{
imgIcon = new ImageIcon( "21.jpg" );
}

public void paintComponent( Graphics g )
{
imgIcon.paintIcon( this, g, 0, 0 );
}

public Dimension getImageWidthHeight()
{
return new Dimension( imgIcon.getIconWidth(),
imgIcon.getIconHeight() );
}
}

Jeg har indtil videre brugt flere timer sammen med
google, men kan desværre ikke finde noget specifikt
omkring mit problem.

Jeg håber I kan pege mig i den rigtige retning.

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


 
 
Mikael Nørrelund And~ (07-05-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 07-05-03 23:46

Mikael Nørrelund Andersen wrote:
> Når man prøver at få vist en JInternalFrame, sker
> der intet.

Der kommer ingen fejl og klassen kan sagtens
kompileres, dog kommer disse advarsler:
http://home20.inet.tele.dk/noerrelund/billeder/jbuilder_jsdk1.4.x_fejl.gif

Jeg har søgt lidt på google efter det med en forkert
version og der sagde alle man skulle reinstallere
JSDK. Dette har jeg allerede gjort samt jeg fjernede
alt der havde med jsdk at gøre inden jeg geninstallerede.

Hvad mere kan man mon gøre?

Jeg er sikker på det ikke er en fejlinstallation af jsdk.

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Trygleren [9000] (08-05-2003)
Kommentar
Fra : Trygleren [9000]


Dato : 08-05-03 09:49

> Hvad mere kan man mon gøre?

Har du prøvet at kompile fra en shell? Hvad sker der så?

--
"Sic gorgiamus allos subjectatos nunc"
Lars 'Trygleren' Winther

www.hesteskelet.dk <-- Nu også med spinat !



Mikael Nørrelund And~ (08-05-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 08-05-03 10:20

Trygleren [9000] wrote:
> Har du prøvet at kompile fra en shell?
> Hvad sker der så?

Jeg er ikke helt på sikker på metoden,
men jeg har prøvet således:
C:\java>javac "program".java

Og der sker intet, det er godt nok lang
tid siden jeg compilede fra dos og kan
muligvis ikke erindre fremgangsmåden.

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Trygleren [9000] (08-05-2003)
Kommentar
Fra : Trygleren [9000]


Dato : 08-05-03 12:13

> Jeg er ikke helt på sikker på metoden,
> men jeg har prøvet således:
> C:\java>javac "program".java

C:\> Javac DesktopTest.java
C:\> Java DesktopTest

SS: www.hesteskelet.dk/newsgroup/michaelnoerrelund.php

Jeg tror dit JBuilder er forkert sat op. Jeg kan anbefaler JCreator Pro.
Det koster ikke mere end et par hundrede og har code completion
(=alt en programmør har brug for =) ).

www.jcreator.com eller www.jcreator.org

--
"Sic gorgiamus allos subjectatos nunc"
Lars 'Trygleren' Winther

www.hesteskelet.dk <-- Nu også med spinat !



Mikael Nørrelund And~ (08-05-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 08-05-03 12:48

Trygleren [9000] wrote:
> SS: www.hesteskelet.dk/newsgroup/michaelnoerrelund.php

Prøv at tryk på Add og vælg JInternalFrame.

> Jeg tror dit JBuilder er forkert sat op.

Det er muligt.

> Jeg kan anbefaler JCreator Pro.
> www.jcreator.com eller www.jcreator.org

Det vil jeg se på, tak.

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Morten Krogh Anderse~ (08-05-2003)
Kommentar
Fra : Morten Krogh Anderse~


Dato : 08-05-03 13:06

Mikael Nørrelund Andersen wrote:

> Trygleren [9000] wrote:
>>Jeg kan anbefaler JCreator Pro.
>>www.jcreator.com eller www.jcreator.org
>
>
> Det vil jeg se på, tak.

Det skal ikke udvikle sig til en IDE diskussion dette her, men hvis du
laver meget GUI, vil det nok være smart at få fat på et IDE med GUI editor.
Dette kunne fx. være http://www.netbeans.org - et ganske gratis IDE..

(Og jo, jeg har både prøvet (og købt) JCreator) :)

Mvh. Morten


Mikael Nørrelund And~ (08-05-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 08-05-03 14:24

Morten Krogh Andersen wrote:
> Det skal ikke udvikle sig til en IDE diskussion dette her,
> men hvis du laver meget GUI, vil det nok være smart at
> få fat på et IDE med GUI editor.

Jeg laver rigtig meget GUI.

> Dette kunne fx. være http://www.netbeans.org - et ganske
> gratis IDE..

Det er lige blevet afprøvet, det virker ret godt, men
fejlene er de samme. Der må være noget med koden
i det program jeg linker til og j2sdk 1.4, fordi det virker
i 1.2

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Morten Krogh Anderse~ (08-05-2003)
Kommentar
Fra : Morten Krogh Anderse~


Dato : 08-05-03 14:50



Mikael Nørrelund Andersen wrote:

> Det er lige blevet afprøvet, det virker ret godt, men
> fejlene er de samme. Der må være noget med koden
> i det program jeg linker til og j2sdk 1.4, fordi det virker
> i 1.2


Hej Mikael

Jeg har lige afprøvet din kode; prøv at indsætte følgende på lini 38, så
skal du bare se sager! ;)

frame.setVisible(true);

/Morten

PS: Pæn baggrund..


Mikael Nørrelund And~ (08-05-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 08-05-03 14:56

Morten Krogh Andersen wrote:
> Jeg har lige afprøvet din kode; prøv at indsætte
> følgende på lini 38, så skal du bare se sager! ;)
>
> frame.setVisible(true);

Jeg kan desværre ikke se nogen ændring, hvilken
j2sdk bruger du?

> PS: Pæn baggrund..

:)

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Morten Krogh Anderse~ (08-05-2003)
Kommentar
Fra : Morten Krogh Anderse~


Dato : 08-05-03 15:10

Mikael Nørrelund Andersen wrote:

> Jeg kan desværre ikke se nogen ændring, hvilken
> j2sdk bruger du?
>
>

Jeg bruger j2sdk1.4.2 beta

Jeg fik fint JInternalFrame'n frem, da jeg satte setVisible på...

Prøv lige at kompilere og køre fra kommandolinien:

<---snip--->

cd <Her ligger DesktopTest.java og 21.jpg>

C:\j2sdk1.4.2\bin\javac.exe DesktopTest.java
C:\j2sdk1.4.2\bin\java DesktopTest

<---snip--->

Hvad sker der ved det?

/Morten


Mikael Nørrelund And~ (08-05-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 08-05-03 15:34

Morten Krogh Andersen wrote:
> Prøv lige at kompilere og køre fra kommandolinien

Så skete der sgu' noget :)
Mange tak for hjælpen, nu vil jeg begrave mig i
projektet igen.

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Mikael Nørrelund And~ (08-05-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 08-05-03 15:41

Mikael Nørrelund Andersen wrote:
> Så skete der sgu' noget :)

Nu virker det også i JCreator LE, men ikke i
NetBeans, det må være en opsætningsfejl og
det samme kan siges om JBuilder3, det er den
fejl med wrong version 48.0.

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Mikael Nørrelund And~ (08-05-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 08-05-03 14:15

Mikael Nørrelund Andersen wrote:
>> Jeg kan anbefaler JCreator Pro.
>> www.jcreator.com eller www.jcreator.org

Jeg har installeret LE versionen og den laver
samme nr med det program jeg linker til, mit
eget program giver 18 fejl :(

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Morten (08-05-2003)
Kommentar
Fra : Morten


Dato : 08-05-03 14:39

De fejl du får betyder at der er en inkompatibilitet mellem compileren
og afviklingsmiljøet. Det er compilet med en bytecode version hvis
major/minor version ikke kan afvikles af afviklingsmiljøet.

Hvis du skriver: class version 48.0 på groups.google.com finder du
mange hints om hvad der er galt.

Som en anden også foreslår, så prøv at compile og køre det i en
prompt. Brug notepad til at gemme de 2 filer i fex. C:\tmp
I en kommandoprompt:

cd c:\tmp
javac *.java
java -cp . DesktopTest

Hvis det fejler vil vi gerne se output af

java -version
javac -version

Mvh Morten

Mikael Nørrelund And~ (08-05-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 08-05-03 14:53

Morten wrote:
> De fejl du får betyder at der er en inkompatibilitet
> mellem compileren og afviklingsmiljøet.

Okay.

> Hvis du skriver: class version 48.0 på groups.google.com
> finder du mange hints om hvad der er galt.

Ja, men de svarer alle sammen at jeg skal afinstallere
j2sdk og installere igen.

> Som en anden også foreslår, så prøv at compile og køre
> det i en prompt. Brug notepad til at gemme de 2 filer i
> fex. C:\tmp I en kommandoprompt:

Jeg prøver.

> cd c:\tmp
> javac *.java

Jeg får denne fejl:
'javac' blev ikke genkendt som en intern eller ekstern
kommando, et program eller en batchfil.

mangler jeg ikke også at fortælle hvor javac.exe ligger?

> java -cp . DesktopTest

Det samme.

> Hvis det fejler vil vi gerne se output af
>
> java -version

Så kommer dette frem:
java version "1.4.2-beta"
java(TM) 2 Runtime Environment, Standard Edition
(build 1.4.2-beta-b19)
Java HotSpot(TM) Client VM (build 1.4.2-beta-b19, mixed mode)

> javac -version

Den siger følgende:
'javac' blev ikke genkendt som en intern eller ekstern
kommando, et program eller en batchfil.

Ja, som I nok kan se er jeg ikke så ferm til dette,
selvom jeg egentlig har en programmeringsudd :(

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Mikael Nørrelund And~ (08-05-2003)
Kommentar
Fra : Mikael Nørrelund And~


Dato : 08-05-03 16:19

Mikael Nørrelund Andersen wrote:
>> Hvis du skriver: class version 48.0 på groups.google.com
>> finder du mange hints om hvad der er galt.
>
> Ja, men de svarer alle sammen at jeg skal afinstallere
> j2sdk og installere igen.

Jeg har dog også fundet dette svar, som jeg ikke
helt ved hvordan man gør:
Try to replace tools.jar of OC4J with the newer (1.4.1) one.
Though afaik 1.4.1 is not supported by oc4j.

Jeg tror bare det er et slags hack, så man faktisk ikke
bruger den rigtige j2sdk1.4.

--
Mvh.
Mikael Nørrelund Andersen

Fjern 'removespamfilter' ved svar til email.


Morten (08-05-2003)
Kommentar
Fra : Morten


Dato : 08-05-03 15:15

I kraft af at du kan køre java men ikke javac, er der meget der
tyder på at du har kun har installeret jre (runtime environment)
og ikke selve compileren.

Har du installeret j2sdk? Bemærk, *ikke* j2re. Fra siden
http://java.sun.com/j2se/1.4.1/download.html skal du klikke
på et link i SDK kolonnen.

Så prøv at afinstallere JRE og smide SDK'et ind. Et IDE er en rigtig
god ide, men det er meget nemmere at overskue hvad der sker hvis man
først lige har grejet hvad der egentligt sker "under the hood".

Mvh Morten

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste