Fillæsning fra JApplet
Er der nogen der kan hjælpe mig med følgende: Jeg har lavet en JAppletsom til start ( i init() ) skal indlæse tre tekst filer som så skal
vises i en JList. De tre tekst filer er placeret i samme bibliotek som
class og html filerne ligger. Når jeg køre appleten i min egen
appleviewer ( også før jeg konverterede html filen med java
HTMLConverter) virkede det hele glimerende i min egen computer, men
hos en studiekammerat virkede kun indlæsningen af den første fil. Efter
at jeg har konverteret htmlfilen virker det stadigt glimmerende i
appletvieweren hos mig men når jeg prøver at køre appleten i browseren
den ikke indlæse tekst filerne overhovedet. Problemet må ligge i metoden
inlæsFiler(). Sourcekoden til appleten og html filen er herunder:
//WebKoeb.java
//Program til køb af frø over internettet.
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.Vector;
import java.io.*;
public class WebKoeb extends JApplet
{
public void init()
{
c = getContentPane();
String vareNavneGruppe[] =
{ \"Blomsterfrø\", \"Græsfrø\", \"Krydderurtefrø\" };
vareGruppe = new JComboBox( vareNavneGruppe );
vareGruppe.setToolTipText( \"Vælg varegruppe\" );
vareGruppe.addActionListener( new ComboListener() );
typeListe = new JList();
typeListe.setVisibleRowCount( 5 );
typeListe.setFixedCellHeight( 30 );
typeListe.setFixedCellWidth( 200 );
typeListe.setSelectionMode(
ListSelectionModel.SINGLE_SELECTION );
køb = new JButton( \"Læg i indkøbskurv\" );
køb.setToolTipText( \"Vælg en vare og læg i indkøbskurv\" );
køb.addActionListener( new KoebEvent() );
fjern = new JButton( \"Fortyd køb\" );
fjern.setToolTipText( \"Fjerner markeret vare fra indkøbskurv\" );
fjern.addActionListener( new FjernEvent() );
kurv = new JList();
kurv.setVisibleRowCount( 5 );
kurv.setFixedCellHeight( 30 );
kurv.setFixedCellWidth( 200 );
kurv.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
kasseKurv = new JList();
kasseKurv.setVisibleRowCount( 5 );
kasseKurv.setFixedCellHeight( 30 );
kasseKurv.setFixedCellWidth( 200 );
DeckHandler deckHandler = new DeckHandler();
gåTilKasse = new JButton( \"Gå til Kassen\" );
gåTilKasse.setToolTipText(\"Gå til kassen for at bestille valgte vare\");
gåTilKasse.addActionListener( deckHandler );
sendOrder = new JButton( \"Send bestilling\" );
sendOrder.setToolTipText( \"Bestiller de valgt vare\" );
sendOrder.addActionListener( deckHandler );
tilBage = new JButton( \"Gå tilbage/annuler\" );
tilBage.setToolTipText(\"Returnere til hovedmenuen\");
tilBage.addActionListener( deckHandler );
//Laver GUI.
deck = new JPanel();
cardManager = new CardLayout();
deck.setLayout( cardManager );
nord = new JPanel();
nord.add( vareGruppe );
//Laver to JLabels til at fylde tomt rum.
nord.add( new JLabel(
\" \"));
nord.add( new JLabel(
\" \"));
nord.add( new JLabel( \"Deres indkøbskurv:\" ));
center = new JPanel();
center.add( new JScrollPane(typeListe) );
center.add( køb );
center.add( fjern );
center.add( new JScrollPane(kurv) );
syd = new JPanel();
syd.add( gåTilKasse );
card1 = new JPanel();
card1.setLayout( new BorderLayout() );
card1.add( nord, BorderLayout.NORTH );
card1.add( center, BorderLayout.CENTER );
card1.add( syd, BorderLayout.SOUTH );
cen = new JPanel(new FlowLayout( FlowLayout.LEFT));
cen.add( new JLabel(
\"Udfyld venligst nedenstående felter før De sender Deres bestilling\" ));
cen.add( new JLabel( \" \"));
cen.add( new JLabel( \"Navn\" ));
cen.add( new JTextField( 37 ));
cen.add( new JLabel( \"Adresse\" ));
cen.add( new JTextField( 35 ));
cen.add( new JLabel( \"Postnummer\") );
cen.add( new JTextField( 10 ));
cen.add( new JLabel( \" By\" ));
cen.add( new JTextField( 19 ));
cen.add( new JLabel( \"Telefon\" ));
cen.add( new JTextField( 10 ));
cen.add( new JLabel( \" E-Mail\" ));
cen.add( new TextField( 29 ));
south = new JPanel();
south.add( sendOrder );
south.add( tilBage );
east = new JPanel(new BorderLayout());
east.add( new JLabel( \"Deres indkøbskurv:\" ), BorderLayout.NORTH);
east.add(new JScrollPane(kasseKurv), BorderLayout.CENTER);
card2 = new JPanel( new BorderLayout() );
card2.add( cen, BorderLayout.CENTER );
card2.add( south, BorderLayout.SOUTH );
card2.add( east, BorderLayout.EAST );
deck.add( card1, \"Hovedmenu\");
deck.add( card2, \"Kassemenu\" );
c.add( deck );
inlæsFiler();
}
private void inlæsFiler()
{
try {
BufferedReader blomstFil = new BufferedReader(
new FileReader( \"blomster.txt\" ));
String input = \"\";
while ( (input = blomstFil.readLine()) != null )
blomster.add( input );
blomstFil.close();
BufferedReader græsFil = new BufferedReader(
new FileReader( \"græs.txt\" ));
String input2 = \"\";
while ( (input2 = græsFil.readLine()) != null )
plænegræs.add( input2 );
græsFil.close();
BufferedReader krydderurtFil = new BufferedReader(
new FileReader( \"krydderurt.txt\" ));
String input3 = \"\";
while ( (input3 = krydderurtFil.readLine()) != null )
krydderurt.add( input3 );
krydderurtFil.close();
} catch ( IOException e )
{
JOptionPane.showMessageDialog( null, \"Fejl ved indlæsning\");
}
}
public void udskrivBekræftigelse()
{
JOptionPane.showMessageDialog( this,
\"Deres bestilling er modtaget og vil blive\"
+\"\\nekspedieret snarest.\" );
}
private class ComboListener implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
if ( vareGruppe.getSelectedIndex() == -1 )
return;
else if ( vareGruppe.getSelectedIndex() == 0 )
typeListe.setListData( blomster );
else if ( vareGruppe.getSelectedIndex() == 1 )
typeListe.setListData( plænegræs );
else
typeListe.setListData( krydderurt );
}
}
private class KoebEvent implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
if ( typeListe.getSelectedValue() != null )
{
vector.add( typeListe.getSelectedValue() );
kurv.setListData( vector );
}
}
}
private class FjernEvent implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
if ( kurv.getSelectedIndex() == -1 )
return;
else
{
vector.removeElementAt( kurv.getSelectedIndex() );
kurv.setListData( vector );
}
}
}
private class DeckHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
if ( e.getSource() == gåTilKasse )
{
cardManager.last( deck );
kasseKurv.setListData( vector );
}
if ( e.getSource() == tilBage )
{
cardManager.first( deck );
kurv.setListData( vector );
}
if ( e.getSource() == sendOrder )
{
udskrivBekræftigelse();
cardManager.first( deck );
vector.removeAllElements();
kurv.setListData( vector );
}
}
}
private JComboBox vareGruppe;
private JButton køb, fjern, gåTilKasse, sendOrder, tilBage;
private JList typeListe, kurv, kasseKurv;
private Vector blomster = new Vector();
private Vector plænegræs = new Vector();
private Vector krydderurt = new Vector();
private Vector vector = new Vector();
private Container c;
private CardLayout cardManager;
private JPanel nord, center, syd, deck, card1, card2, cen, south, east;
}
<html>
<!--\"CONVERTED_APPLET\"-->
<!-- HTML CONVERTER -->
<OBJECT classid=\"clsid:E19F9330-3110-11d4-991C-005004D3B3DB\"
WIDTH = 690 HEIGHT = 300 codebase=\"http://java.sun.com/products/plugin/1.3.0_01/jinstall-130_01-win32.cab#Version=1,3,0,1\">
<PARAM NAME = CODE VALUE = \"WebKoeb.class\" >
<PARAM NAME=\"type\" VALUE=\"application/x-java-applet;jpi-version=1.3.0_01\">
<PARAM NAME=\"scriptable\" VALUE=\"false\">
<COMMENT>
<EMBED type=\"application/x-java-applet;jpi-version=1.3.0_01\" CODE = \"WebKoeb.class\" WIDTH = 690 HEIGHT = 300 scriptable=false pluginspage=\"http://java.sun.com/products/plugin/1.3.0_01/plugin-install.html\"><NOEMBED>
</NOEMBED>
</EMBED>
</COMMENT>
</OBJECT>
<!--
<APPLET CODE = \"WebKoeb.class\" WIDTH = 690 HEIGHT = 300>
</APPLET>
-->
<!--\"END_CONVERTED_APPLET\"-->
</html>