13. oktober 2004 - 14:59
Der er
37 kommentarer og 1 løsning
applet problem
Hej Eksperter,
Jeg sidder og prøver at få en applet til at virke. Det er tanken at jeg vil lave et chatforum med specielt fokus på sikkerhed, men indtil videre skal jeg lige forstå hvordan det virker. Jeg har oprettet et websted
http://web-oasen.dk:8080/chat hvor appletten skal vises. Jeg bruger Tomcat som server. Min class fil ligger i chat/classes/ men det vil altså ikke virke
Annonceindlæg fra Barco
13. oktober 2004 - 14:59
#1
Chat.class import java.awt.*; import java.applet.*; public class Chat extends Applet { public void init() { } public void paint(Graphics g) { g.drawString("Welcome to Java!!", 50, 60 ); } }
13. oktober 2004 - 15:01
#2
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> <html> <head> <title>Chat site</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <center> <applet code = "Chat.class" width = "500" height = "300" > </applet> </center> </body> </html>
13. oktober 2004 - 15:04
#3
En applet køres client side og set fra serverens side er det bare en fil. Den skal derfor ligge i samme directory som HTML filen. Medmindre man naturligvis angiver sti i applet tagget.
13. oktober 2004 - 15:23
#4
Sådan her ikke <applet code = "./WEB-INF/classes/Chat.class" width = "500" height = "300" > </applet>
13. oktober 2004 - 15:27
#5
Ja. Bortset fra at din Tomcat næppe vil tillade download af filer fra WEB-INF træet !
13. oktober 2004 - 15:28
#6
Lig den i samme dir som HTMl filen - eller i et speciel dir for applets ved siden af WEB-INF
13. oktober 2004 - 15:28
#7
okay, hvor skal jeg så ligge dem
13. oktober 2004 - 15:30
#8
Okay, så ser det ud til at virke
13. oktober 2004 - 15:36
#9
Men jeg syntes ikke at kunne ligge appleten andre steder end sammen med HTML filen
13. oktober 2004 - 15:45
#10
Så er der en eller anden fjollet regel omkring applets og URL'er med directory i. Jeg kan godt prøve at lede efter noget.
13. oktober 2004 - 15:46
#11
Det er pænt af dig :-)
13. oktober 2004 - 15:59
#12
13. oktober 2004 - 16:03
#13
Det her spørgsmål er i hvert tilfælde besvaret. Jeg vil rode lidt videre med det og håber jeg må vende tilbage
13. oktober 2004 - 16:08
#14
13. oktober 2004 - 16:09
#15
sektionen "Specifying the Applet Directory"
13. oktober 2004 - 16:09
#16
Groft sagt er det: <APPLET CODE="klasse" CODEBASE="dir" ...
13. oktober 2004 - 16:10
#17
og et svar
13. oktober 2004 - 16:11
#18
Det vil jeg lige prøve
13. oktober 2004 - 16:12
#19
Hvordan får jeg det her implementeret i min applet import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Program extends JFrame implements ActionListener { JButton b1 = new JButton("Login"); JLabel userl = new JLabel("Username"); JTextField user = new JTextField(); JLabel passl = new JLabel("Password"); JTextField pass = new JTextField(); JPanel pa; public Program() { super ("Sikker chat"); setSize(500,100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocation(400,300); setResizable(false); user.setColumns(10); pass.setColumns(10); b1.addActionListener(this); pa = new JPanel(); pa.add(userl); pa.add(user); pa.add(passl); pa.add(pass); pa.add(b1); pa.setBackground(Color.red); setContentPane(pa); } public static void main(String args[]) { JFrame fr = new Program(); fr.setVisible(true); } public void actionPerformed(ActionEvent evt) { Object scr = evt.getSource(); if (scr==b1) { JDialog fr = new Chat(this, "Chat", true); fr.setVisible(true); } repaint(); } }
13. oktober 2004 - 16:18
#20
Prøv: public class Program extends JFrame implements ActionListener -> public class Program extends JApplet implements ActionListener og public Program() -> public void init() og slet main. [utestet !!!!]
13. oktober 2004 - 16:28
#21
Det er jeg bange for at jeg fatter HAT af
13. oktober 2004 - 16:35
#22
Det ville være super cool hvis du gad vise et eksempel. Jeg kan godt få det til at virke i en applikation, men jeg forstår ikke hvordan man får det til at virke i en applet.
13. oktober 2004 - 21:32
#23
14. oktober 2004 - 21:19
#24
import java.awt.*; import java.applet.*; import java.awt.event.*; import javax.swing.*; public class Chat extends JFrame implements ActionListener { JButton b1 = new JButton("Login"); JLabel userl = new JLabel("Username"); JTextField user = new JTextField(); JLabel passl = new JLabel("Password"); JTextField pass = new JTextField(); JPanel pa; public Chat() { super ("Sikker chat"); setSize(500,100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocation(400,300); setResizable(false); user.setColumns(10); pass.setColumns(10); b1.addActionListener(this); pa = new JPanel(); pa.add(userl); pa.add(user); pa.add(passl); pa.add(pass); pa.add(b1); pa.setBackground(Color.red); setContentPane(pa); } public void init() { JFrame fr = new Chat(); fr.setVisible(true); } public void actionPerformed(ActionEvent evt) { Object scr = evt.getSource(); if (scr==b1) { // JDialog fr = new Opret(this, "Opret", true); // fr.setVisible(true); } } }
14. oktober 2004 - 21:20
#25
Er det helt forkert, eller hvad mangler jeg
14. oktober 2004 - 21:32
#26
Du skal extende JApplet ikke JFrame. Og init skal nok laves om til at afspejle det.
14. oktober 2004 - 21:43
#27
Det er i bund og grund det her jeg gerne vil have til at virke i en applet import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Program extends JFrame implements ActionListener { JButton b1 = new JButton("Opret"); JButton b2 = new JButton("Rediger"); JButton b3 = new JButton("Udskriv"); JButton b4 = new JButton("Exit"); JPanel pa; public Program() { super ("Hovedmenu"); setSize(350,100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocation(400,300); setResizable(false); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); pa = new JPanel(); pa.add(b1); pa.add(b2); pa.add(b3); pa.add(b4); pa.setBackground(Color.red); setContentPane(pa); } public static void main(String args[]) { JFrame fr = new Program(); fr.setVisible(true); } public void actionPerformed(ActionEvent evt) { Object scr = evt.getSource(); if (scr==b1) { JDialog fr = new Opret(this, "Opret", true); fr.setVisible(true); } if (scr==b2) { JDialog fr = new Slet(this, "Rediger", true); fr.setVisible(true); } if (scr==b3) { JFrame fr = new Udskriv(); fr.setVisible(true); } if (scr==b4) { System.exit(0); } repaint(); } }
14. oktober 2004 - 21:45
#28
er det rigtigt forstået at init metoden, modsvarer main metoden i applikationen?
14. oktober 2004 - 21:58
#29
eller constructor
14. oktober 2004 - 21:58
#30
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Program extends JApplet implements ActionListener { JButton b1 = new JButton("Opret"); JButton b2 = new JButton("Rediger"); JButton b3 = new JButton("Udskriv"); JButton b4 = new JButton("Exit"); JPanel pa; public void init() { setSize(350,100); setLocation(400,300); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); pa = new JPanel(); pa.add(b1); pa.add(b2); pa.add(b3); pa.add(b4); pa.setBackground(Color.red); setContentPane(pa); } public void actionPerformed(ActionEvent evt) { Object scr = evt.getSource(); if (scr==b1) { // noget } if (scr==b2) { // noget } if (scr==b3) { // noget } if (scr==b4) { System.exit(0); } repaint(); } }
14. oktober 2004 - 22:24
#31
Det virker jo egenligt fint nok :-) Jeg har bare et problem til. Hvordan får jeg noget til at ske når jeg trykker på en knap.
14. oktober 2004 - 22:25
#32
Jeg har prøvet med if (scr==b1) { JDialog fr = new Opret(this, "Opret", true); fr.setVisible(true); }
14. oktober 2004 - 22:25
#33
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Opret extends JDialog implements ActionListener { JButton b1 = new JButton("Knap1"); JPanel pa; public Opret(Frame owner, String s, boolean modal) { super (owner, s, modal); setSize(300,100); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setLocation(420,320); setResizable(false); b1.addActionListener(this); pa = new JPanel(); pa.add(b1); pa.setBackground(Color.yellow); setContentPane(pa); } public void actionPerformed(ActionEvent evt) { Object scr = evt.getSource(); if (scr==b1) { } } }
14. oktober 2004 - 22:35
#34
14. oktober 2004 - 22:38
#35
15. oktober 2004 - 11:21
#36
Jeg har problemer med at finde ud af at navigere. Den eneste måde jeg kan få det til at virke på er import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Chat extends JApplet implements ActionListener { JLabel bl = new JLabel("Brugernavn"); JTextField bt = new JTextField(10); JLabel pl = new JLabel("Password"); JTextField pt = new JTextField(10); JButton b1 = new JButton("Login"); JButton b2 = new JButton("Tilbage"); JPanel pa; public void init() { setSize(350,100); setLocation(400,300); b1.addActionListener(this); pa = new JPanel(); pa.add(bl); pa.add(bt); pa.add(pl); pa.add(pt); pa.add(b1); pa.setBackground(Color.red); setContentPane(pa); } public void test() { setSize(350,100); setLocation(400,300); b1.addActionListener(this); pa = new JPanel(); pa.add(b2); pa.setBackground(Color.green); setContentPane(pa); } public void actionPerformed(ActionEvent evt) { Object scr = evt.getSource(); if (scr==b1) { test(); } if (scr==b2) { init(); } repaint(); } } Men det er jo noget rod da metoden test() jo gerne skulle over i sin egen klasse
17. oktober 2004 - 20:01
#37
Hvis du skal bruge flere klasser i en applet, så skal du pakke alle class filerne ned i en jar fil og referere til den i dit APPLET tag !
17. oktober 2004 - 20:41
#38
Det var en god ting at vide :-)
Kurser inden for grundlæggende programmering