Forum » Programiranje » [Java] Zagon appleta v HTML
[Java] Zagon appleta v HTML

Bela01 ::
Zanima me v čem je fora, da mi na strani ne zažene appleta. Gre se za programček o katerem je bilo že več tem odprtih (Branje iz datoteke).
Na računalniku imam naloženo java jdk1.6, uporabljam pa bluej. Skompajlala sem v bluej, ki mi je lepo naredila datoteko s .class, vendar ne deluje. V čem je problem?
Na računalniku imam naloženo java jdk1.6, uporabljam pa bluej. Skompajlala sem v bluej, ki mi je lepo naredila datoteko s .class, vendar ne deluje. V čem je problem?

<b>klima</b> ::
<html>
<body>
<applet code="Imerazreda.class" width=460 height=320></applet>
</body>
</html>
Probej zagnat, če noče je verjetno nekaj narobe s samim classom.
<body>
<applet code="Imerazreda.class" width=460 height=320></applet>
</body>
</html>
Probej zagnat, če noče je verjetno nekaj narobe s samim classom.

Bela01 ::
Njet. Kaj bi lakho bilo narobe? A se more kje v BlueJ kaj posebej nastavljat, da pravilno prevede?
Če grem v konzoli prevajat z javac, pa mi izpiše, da ne obstaja ta ukaz ali nekaj takega.
Verjetno bo s tem nekaj narobe.
Sem sicer iskala na forumu o tem, vendar pod spremenljivko path (pod System), je že nekaj nastavljeno od enega programa, pa ne vem če lahko spremenim tisto.
Če grem v konzoli prevajat z javac, pa mi izpiše, da ne obstaja ta ukaz ali nekaj takega.
Verjetno bo s tem nekaj narobe.
Sem sicer iskala na forumu o tem, vendar pod spremenljivko path (pod System), je že nekaj nastavljeno od enega programa, pa ne vem če lahko spremenim tisto.

Bojevnik ::
v path lahko dodajaš dodatne poti, ločij jih pa s podpičjem.
npr.:
s tem da za podpićjem ne sme biti presledka
npr.:
C:\soundblaster\;C:\Java\bin\
s tem da za podpićjem ne sme biti presledka

Bela01 ::
Sem vstavla, vendar še vedno ne dela applet. Kaj bi lahko bilo še narobe?
Naj še dodam kodo, če bi bilo potrebno tu kaj spremnit.
Naj še dodam kodo, če bi bilo potrebno tu kaj spremnit.
import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; import javax.swing.border.*; import java.util.*; public class Naloga extends JApplet implements ItemListener, ActionListener { String[] a; String pres = " "; //vprašanje String[] n = new String[3]; //odgovori String[][] o = new String[3][3]; //točke za pravilne odgovore int[] tocke = new int[3]; //pravilni odgovor int[] odg = new int[3]; JFrame frame = new JFrame("Reševanje nalog"); //zaporedna številka naloge int zap = 0; //Labela s tekstom, nalogo in odgovorom JLabel tekst = new JLabel(""); JLabel naloga = new JLabel(""); JLabel odgovor = new JLabel(""); private String Preveri_g = "Preveri_g"; private String Naprej_g = "Naprej_g"; //ustvarimo gumbe JRadioButton[] rgumb = new JRadioButton[3];; JButton preveri, naprej; //spremenljivka za slikice Toolkit tool = Toolkit.getDefaultToolkit(); Image slika = tool.getImage("naloga1.jpg"); Icon ikona = new ImageIcon(slika); JLabel slikaL = new JLabel(ikona); //grupa, ki bo združila radiobutone - rgumbe, da bodo sodelovali med seboj ButtonGroup grupa = new ButtonGroup(); //ustvarimo panelo, ki bo nosila ostale v sebi JPanel namizje = new JPanel(new BorderLayout()); JPanel namizje1 = new JPanel(new BorderLayout()); JPanel namizje2 = new JPanel(new BorderLayout()); JPanel resitev = new JPanel(new BorderLayout()); //ostale panele JPanel navodilo = new JPanel(new BorderLayout()); JPanel nosilna = new JPanel(new GridLayout()); JPanel odgovori = new JPanel(new GridLayout(3, 1)); JPanel primeri = new JPanel(new GridLayout()); JPanel gumbi = new JPanel(new GridLayout(1, 2)); JLabel izpis = new JLabel(""); //panele za applet JPanel applet = new JPanel(new GridLayout(8,1)); JPanel naslov = new JPanel(new BorderLayout()); JPanel n_1 = new JPanel(new GridLayout(2,1)); JPanel n_2 = new JPanel(new GridLayout(2,1)); JPanel n_3 = new JPanel(new GridLayout(2,1)); JPanel nal1 = new JPanel(new GridLayout(2,2)); JPanel nal2 = new JPanel(new GridLayout(2,2)); JPanel nal3 = new JPanel(new GridLayout(2,2)); JPanel komentar = new JPanel(); //labele za applet JLabel[] L1 = new JLabel[2]; JLabel[] L2 = new JLabel[2]; JLabel[] L3 = new JLabel[2]; JLabel kom = new JLabel(); public void Labele() { for (int i = 0; i < 2; i++) { L1[i] = new JLabel(" "); L2[i] = new JLabel(" "); L3[i] = new JLabel(" "); } } public void Oblikuj() { applet.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5), BorderFactory.createEtchedBorder())); naslov.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5), BorderFactory.createEtchedBorder())); n_1.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5), BorderFactory.createEtchedBorder())); n_2.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5), BorderFactory.createEtchedBorder())); n_3.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5), BorderFactory.createEtchedBorder())); komentar.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5), BorderFactory.createEtchedBorder())); applet.setPreferredSize(new Dimension(500,500)); naslov.setPreferredSize(new Dimension(40,500)); n_1.setPreferredSize(new Dimension(60,500)); nal1.setPreferredSize(new Dimension(40,500)); n_2.setPreferredSize(new Dimension(60,500)); nal2.setPreferredSize(new Dimension(40,500)); n_3.setPreferredSize(new Dimension(60,500)); nal3.setPreferredSize(new Dimension(40,500)); komentar.setPreferredSize(new Dimension(30,500)); } public void ZgradiApplet() { Container app = this.getContentPane(); Oblikuj(); Labele(); naslov.add(new JLabel(" Rezultati reševanja")); nal1.add(new JLabel(" Pravilen odgovor: ")); nal1.add(L1[0]); nal1.add(new JLabel(" Dosežene točke: ")); nal1.add(L1[1]); nal2.add(new JLabel(" Pravilen odgovor: ")); nal2.add(L2[0]); nal2.add(new JLabel(" Dosežene točke: ")); nal2.add(L2[1]); nal3.add(new JLabel(" Pravilen odgovor: ")); nal3.add(L3[0]); nal3.add(new JLabel(" Dosežene točke: ")); nal3.add(L3[1]); n_1.add(new JLabel(n[0])); n_1.add(nal1); n_2.add(new JLabel(n[1])); n_2.add(nal2); n_3.add(new JLabel(n[2])); n_3.add(nal3); komentar.add(kom); applet.add(n_1); applet.add(n_2); applet.add(n_3); applet.add(komentar); app.add(applet); } //Panela z navodilom naloge public JPanel NavodiloP(){ navodilo.setPreferredSize(new Dimension(350, 50)); naloga.setText(n[0]); navodilo.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(5, 0, 5, 0), BorderFactory.createEtchedBorder())); navodilo.add(new JLabel(pres), BorderLayout.WEST); navodilo.add(naloga, BorderLayout.CENTER); return navodilo; } //v grupo dodamo stikala oz. radiobuttone void DodajStikala(){ //ustvarimo rgumbe z možnimi odgovori for (int i = 0; i < 3; i++) { rgumb[i] = new JRadioButton(o[zap][i]); if (i != odg[zap]) rgumb[i].setActionCommand("NE"); else rgumb[i].setActionCommand("DA"); rgumb[i].addItemListener(this); grupa.add(rgumb[i]); } } //Panela ki vsebuje stikala public JPanel OdgovoriP(){ DodajStikala(); odgovori.setPreferredSize(new Dimension(200, 250)); odgovori.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5), BorderFactory.createTitledBorder( LineBorder.createGrayLineBorder(), "Možni odgovori"))); for (int i = 0; i < 3; i++) { odgovori.add(rgumb[i]); } return odgovori; } //Panela ki vsebuje slike public JPanel PrimeriP(){ primeri.setPreferredSize(new Dimension(200, 250)); primeri.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(5, 5, 5, 5), BorderFactory.createTitledBorder( LineBorder.createGrayLineBorder(), "Slika kot pomoč"))); primeri.add(slikaL); return primeri; } //Panela ki vsebuje paneli odgovori in primeri public JPanel NosilnaP(){ OdgovoriP(); PrimeriP(); nosilna.add(odgovori); nosilna.add(primeri); nosilna.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(5, 0, 5, 0), BorderFactory.createEtchedBorder())); return nosilna; } //panela ki vsebuje labelo s tekstom public JPanel ResitevP(){ resitev.add(izpis); resitev.setPreferredSize(new Dimension(350, 50)); resitev.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(1, 0, 1, 0), BorderFactory.createEtchedBorder())); resitev.add(new JLabel(pres), BorderLayout.WEST); resitev.add(tekst, BorderLayout.CENTER); return resitev; } //panela namizje1 vsebuje panele navodilo, nosilna in resitev public JPanel Namizje1P(){ NavodiloP(); NosilnaP(); ResitevP(); namizje1.add(navodilo, BorderLayout.NORTH); namizje1.add(nosilna, BorderLayout.CENTER); namizje1.add(resitev, BorderLayout.SOUTH); namizje1.setBorder(BorderFactory.createEmptyBorder(5, 5, 0, 5)); return namizje1; } //panela ki vsebuje gumba preveri in naprej public JPanel GumbiP(){ gumbi.setPreferredSize(new Dimension(350, 50)); gumbi.setBorder( new CompoundBorder( BorderFactory.createEmptyBorder(1, 0, 1, 0), BorderFactory.createEtchedBorder())); //ustvarimo in vstavimo v labelo gumba preveri in naprej preveri = new JButton("Preveri"); preveri.setActionCommand(Preveri_g); preveri.addActionListener(this); gumbi.add(preveri); naprej = new JButton("Naprej"); naprej.setActionCommand(Naprej_g); naprej.addActionListener(this); gumbi.add(naprej); return gumbi; } //panela ki vsebuje gumbe public JPanel Namizje2P(){ GumbiP(); namizje2.add(gumbi, BorderLayout.SOUTH); namizje2.setBorder(BorderFactory.createEmptyBorder(0, 5, 5, 5)); return namizje2; } //glavno namizje ki vsebuje namizje1 in namizje2 public JPanel NamizjeP(){ Namizje1P(); Namizje2P(); namizje.add(namizje1, BorderLayout.NORTH); namizje.add(namizje2, BorderLayout.CENTER); return namizje; } public void BeriIzDatoteke() { try { BufferedReader datoteka = new BufferedReader(new FileReader("datoteka.txt")); //trije seti vprašanj for (int j = 0; j < 3; j++) { //prebereš vprašanje in ga shraniš n[j] = datoteka.readLine(); //prebereš možne odgovore in jih shraniš for (int k = 0; k < 3; k++) { //shraniš možne odgovore o[j][k] = datoteka.readLine(); } //prebereš še številko pravilnega odgovora odg[j] = Integer.parseInt(datoteka.readLine()); } datoteka.close(); } catch(IOException e) //če datoteka, ki smo jo klicali za branje ne obstaja { //System.out.println("Datoteka ne obstaja!"); } zap = 0; } //glavni program okna public void main(String[] args) { BeriIzDatoteke(); //oblikujemo applet ZgradiApplet(); //ustvarimo okno JFrame.setDefaultLookAndFeelDecorated(true); //Naloga app = new Naloga(); // uporabimo drsno površino v primeru premajhnega okna JScrollPane pane = new JScrollPane(NamizjeP()); pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); frame.getContentPane().add(pane, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } //glavni program appleta public void init() { main(a); } //metoda, ki ugotavlja stanje stikal public void itemStateChanged(ItemEvent event) { tekst.setText(""); } //metoda ki ugotovi stanje gumbov public void actionPerformed(ActionEvent event) { int i; if (event.getActionCommand().equals(Preveri_g)) { //ko uporanbik pritisne gumb preveri, se možnost izbire odgovora prepreči rgumb[0].setEnabled(false); rgumb[1].setEnabled(false); rgumb[2].setEnabled(false); if (rgumb[odg[zap]].isSelected()) { tekst.setText("Odgovor je pravilen!"); tocke[zap] = 1; } else tekst.setText("Odgovor ni pravilen!"); } if (event.getActionCommand().equals(Naprej_g)) { //omogočimo gumbe za odgovore rgumb[0].setEnabled(true); rgumb[1].setEnabled(true); rgumb[2].setEnabled(true); rgumb[0].setSelected(false); rgumb[1].setSelected(false); rgumb[2].setSelected(false); tekst.setText(""); if (zap < 2) { zap++; naloga.setText(n[zap]); for (i = 0; i < rgumb.length; i++) { rgumb[i].setText(o[zap][i]); } if (zap == 1) { primeri.remove(slikaL); slika = tool.getImage("naloga2.jpg"); ikona = new ImageIcon(slika); slikaL = new JLabel(ikona); primeri.add(slikaL); } else if (zap == 2) { primeri.remove(slikaL); slika = tool.getImage("naloga3.jpg"); ikona = new ImageIcon(slika); slikaL = new JLabel(ikona); primeri.add(slikaL); } } else { zap = 0; L1[0].setText(o[0][0]); L1[1].setText(String.valueOf(tocke[0])); L2[0].setText(o[1][1]); L2[1].setText(String.valueOf(tocke[1])); L3[0].setText(o[2][2]); L3[1].setText(String.valueOf(tocke[2])); int a = 0; for (i = 0; i < 3; i++) { a = a + tocke[i]; } if (a == 3) kom.setText(" Sedi! Pet!"); else if (a == 2) kom.setText(" Ni slabo!"); else if (a == 1) kom.setText(" Malo si bo treba še pogledat snov!"); else if (a == 0) kom.setText(" C-c-c, zelo slabo!"); frame.dispose(); } } } }
Zgodovina sprememb…
- spremenila: Bela01 ()

w00tnes ::
Meni tvojo kodo lepo skompajla in aplet tudi zazene...probaj najprej nastaviti poti:
SET path=%path%;C:\pot\do\jdk.x\bin [npr. C:\Program Files\Java\jdk1.5.0_15\bin]
SET classpath=.
pa potem kompajlaj
(upam da je kaj pomagalo)
Lp
SET path=%path%;C:\pot\do\jdk.x\bin [npr. C:\Program Files\Java\jdk1.5.0_15\bin]
SET classpath=.
pa potem kompajlaj
(upam da je kaj pomagalo)
Lp

Bela01 ::
Sem nastavla, pa mi še vedno ne v Mozilli in ne v IE ne prikaže na strani appleta. Pač samo tisti okvirček in rdeči križec. Ampak druge applete mi pa odpira, torej ni problem v brskalnikih :(
Torej ni problem, d mi ne bi prevedlo, samo očitno ne prevede prav, ker pol to ne dela.
Torej ni problem, d mi ne bi prevedlo, samo očitno ne prevede prav, ker pol to ne dela.
Zgodovina sprememb…
- spremenila: Bela01 ()

Infinity ::
A maš u sami javi astavljen da lahko applet šari po tvojem disku? ker kolkr js vem applet sam po seb nima pravicc za šarjenje po disku.

Bela01 ::
w00tnes: Uh ko je namučkano skupaj besedilo. Pa sem še viška prostora pustila, pa mi ni jasno zakaj tak natlači, ker prvo ni.
Saj imam .class in html v isti mapi, pa ne dela. A lahko še probate s tem mojim classom, če bo delalo. Mogoče pa je kje kaj druga narobe nastavljeno.
Klik
Saj imam .class in html v isti mapi, pa ne dela. A lahko še probate s tem mojim classom, če bo delalo. Mogoče pa je kje kaj druga narobe nastavljeno.
Klik
Zgodovina sprememb…
- spremenila: Bela01 ()

Bela01 ::
Zdaj sem še zagnala iz ukazne vrstice, tu pa dela (appletviewer index.html).
Me pa moti izgled. Zakj je tak namučkano skupaj, če pa dimenzije ogrodja gredo skozi, še viška je.
Me pa moti izgled. Zakj je tak namučkano skupaj, če pa dimenzije ogrodja gredo skozi, še viška je.

w00tnes ::
Hm tudi meni zdaj nekej zabrejkalo...sem pa resil na naslednji nacin:
- ustvaris jar fajl (jar cvf Naloga.jar Naloga.class)
- popravis html fajl (spremenis code="Naloga.class" tako, da dodas se archive="Naloga.jar")
- zgeneriras kljuc (C:\Naloga>keytool -genkey -alias Naloga -validity 365)
- pozenes jarsigner (C:\Naloga>jarsigner Naloga.jar Naloga)
Reload, med nalaganjem te bo vprasalo ce dovolis izvajanje in das run...meni tako zacne delati :)
Edit: v appletviewerju je tudi meni normalno delalo...cudno da mi je ze prej pognalo zadevo v firefoxu (krneki!)
- ustvaris jar fajl (jar cvf Naloga.jar Naloga.class)
- popravis html fajl (spremenis code="Naloga.class" tako, da dodas se archive="Naloga.jar")
- zgeneriras kljuc (C:\Naloga>keytool -genkey -alias Naloga -validity 365)
- pozenes jarsigner (C:\Naloga>jarsigner Naloga.jar Naloga)
Reload, med nalaganjem te bo vprasalo ce dovolis izvajanje in das run...meni tako zacne delati :)
Edit: v appletviewerju je tudi meni normalno delalo...cudno da mi je ze prej pognalo zadevo v firefoxu (krneki!)
Zgodovina sprememb…
- spremenil: w00tnes ()

Bela01 ::
Uh, hvala za pomoč. Bom probala skupaj spacat.
A imaš kako idejo kak še naj izgled appleta popravim? Da ne bo tak nagužvano skupaj?
A imaš kako idejo kak še naj izgled appleta popravim? Da ne bo tak nagužvano skupaj?

w00tnes ::
To pa nebi vedel (GUI pa jaz...to ne gre skup :P )
Mogoce bi lahko uporabila gridlayout (z enim stolpcem)...dunno :)
Mogoce bi lahko uporabila gridlayout (z enim stolpcem)...dunno :)

Bela01 ::
Hm isto (glede izgleda). Sicer sem zdaj vidla da sem x in y zamenjala (trola pa jaz, saj se nikjer ne piše prvo y in potem x). Dobro to bom sicer že rešla nekak.
P.S.: Sem odpravla zadevo. Ne znam štet. Ne vem od kod sem dobila 8 vrstic, če pa jih je samo 5.
P.S.: Sem odpravla zadevo. Ne znam štet. Ne vem od kod sem dobila 8 vrstic, če pa jih je samo 5.
Zgodovina sprememb…
- spremenila: Bela01 ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [java]problem z ThrowsOddelek: Programiranje | 1625 (1154) | killa bee |
» | [Java] Ne zažene appletaOddelek: Programiranje | 1226 (1159) | iggy |
» | [JAVA] branje iz datotekeOddelek: Programiranje | 2435 (2070) | Bela01 |
» | [Java]VprašanjaOddelek: Programiranje | 2127 (1595) | Bela01 |
» | [Java] Deljenje in ostanekOddelek: Programiranje | 3171 (2755) | pr2501 |