RETT PÅ JAVA
     
 



     Eksempler og løsninger   
     Java og easyIO   
     Retteliste   
     Undervisning   
     Hjelp   
     Om boka   
     Forsiden   
                      



/**
 * Løsning på oppgave 3, kapittel 14.
 * Lagres på en fil med navn "Filvindu.java", og kompileres
 * med kommandoen 
 * 
 * javac Filvindu.java
 * 
* og kjøres med kommandoen *
 
 * java Filvindu
 * 
* */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import easyIO.In; class Filvindu extends JFrame implements ActionListener { JTextArea tekstvindu; JTextField filnavnfelt; JButton filknapp; JLabel filnavnlabel; // Konstruktør Filvindu() { super("Filleser"); initDesktop(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } void visFil(String filnavn) { if (filnavn == null || "".equals(filnavn.trim()) || !In.isFile(filnavn.trim())) { JOptionPane.showMessageDialog(this, "Finner ikke oppgitt fil: " + filnavn); } else { tekstvindu.setText(""); // Tømmer filvinduet. In fil = new In(filnavn.trim()); while (!fil.endOfFile()) { tekstvindu.append(fil.inLine() + "\n"); } } } void initDesktop() { filknapp = new JButton("Les fil"); filknapp.addActionListener(this); tekstvindu = new JTextArea(30, 80); filnavnfelt = new JTextField(40); filnavnlabel = new JLabel("Filnavn: "); filnavnlabel.setLabelFor(filknapp); // Label, felt og knapp øverst i vinduet, bruker // GridLayout med en rad og vilkårlig antall kolonner. JPanel nord = new JPanel(); FlowLayout layout = new FlowLayout(); nord.setLayout(layout); nord.add(filnavnlabel); nord.add(filnavnfelt); nord.add(filknapp); add(nord, BorderLayout.NORTH); // Textvindu med scrollpane i center. JScrollPane scroll = new JScrollPane(tekstvindu); add(scroll, BorderLayout.CENTER); pack(); } public void actionPerformed(ActionEvent e) { visFil(filnavnfelt.getText()); } public static void main(final String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new Filvindu(); } }); } }