Avatar billede jesp Nybegynder
12. december 2000 - 12:28 Der er 2 kommentarer og
1 løsning

Fillæsning fra JApplet

Er der nogen der kan hjælpe mig med følgende: Jeg har lavet en JApplet
som 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>
Avatar billede stigc Nybegynder
12. december 2000 - 22:14 #1
swing er java2 kode og vil ikke kører i en browser,,,,
Avatar billede jesp Nybegynder
13. december 2000 - 20:01 #2
Ja det er jeg godt klar over men, som det ses af html filen så er den jo netop konverteret med htmlkonverter til at benytte java jre som plugin.
Avatar billede creator Nybegynder
10. februar 2001 - 00:02 #3
Har du prøvet at bruge getCodeBase eller getDocumentBase, når du læser filerne. Noget andet er om du kan bruge skandinaviske karakterer i dine filnavn(æ,ø,å). Noget kunne tyde på at det kunne være problemmet, da nr. 2 fil er grÆs.txt. ellers prøv at køre appletten med Jview /a og se hvad den skriver i konsolen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester