Ciao a tutti!![]()
Sto provando a scrivere un applet in grado di scrivere su un file di testo:
6 JLabel, 6 JTextField e due JButton.
L'idea sarebbe che dopo aver immesso i dati nei JTextField si schiaccia uno dei due JButton e a seconda i dati vengono riportati all'interno di uno o dell'altro file .odt, non sembra difficile, ma al momento di provare il programma quando clicko un JButton nel terminalino di linux esce l'errore:
secondo voi è un errore nel codice? provo a postarlo:codice:Exception in thread "AWT-EventQueue-1" java.security.AccessControlException: access denied (java.io.FilePermission /home/jekotojava/Documenti/prova.odt write)
codice:import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.*; import java.awt.*; import java.io.*; public class prova2 extends JApplet { private static final long serialVersionUID = 1L; JButton[] bottone; JPanel pannelloBottoni; JPanel pannelloCampi; Container pannelloApplet; public JTextField aCode = new JTextField(10); public JTextField aNome = new JTextField(10); public JTextField società = new JTextField(10); public JTextField venduti = new JTextField(10); public JTextField costo = new JTextField(10); public JTextField guadagno = new JTextField(10); //Labels public JLabel codice = new JLabel("Codice articolo:"); public JLabel nome = new JLabel("Nome articolo:"); public JLabel socProd = new JLabel("Società di produzione:"); public JLabel v100 = new JLabel("Venduti/100:"); public JLabel c100 = new JLabel("Costo di cento unità:"); public JLabel g100 = new JLabel("Guadagno con 100 unità:"); public void init() { // Settaggio testo aCode.setEditable(true); aNome.setEditable(true); società.setEditable(true); venduti.setEditable(true); costo.setEditable(true); guadagno.setEditable(true); // Definisco il layout dell'applet: pannelloApplet = getContentPane(); pannelloApplet.setLayout(new BorderLayout()); // inseriremo i 6 bottoni in un pannello che verra' inserito // nel centro dell'applet. Costruiamo il pannello: pannelloBottoni = new JPanel(); // dispongo i 2 bottoni in una griglia: pannelloBottoni.setLayout(new FlowLayout()); // definisco un array di 2 bottoni. bottone = new JButton[2]; // inizializzo i bottoni e li aggiungo al pannelloBottoni. // Etichetta dei bottoni: String[] nomeBottone = {"Salva come positivo", "Salva come negativo"}; // Colore di sfondo dei bottoni: Color[] coloreBottone = {Color.red, Color.cyan}; for (int i = 0; i < bottone.length; i++) { bottone[i] = new JButton(nomeBottone[i]); bottone[i].setBackground(coloreBottone[i]); pannelloBottoni.add(bottone[i]);} // inserisco il pannelloBottoni a sud dell'applet: pannelloApplet.add(pannelloBottoni, BorderLayout.SOUTH); // Definisco il pannello e i campi d'Input che dovrà contenere: JPanel pannelloCampi = new JPanel(); pannelloCampi.setLayout(new GridLayout(6,2,0,0)); // Inserisco in pannelloCampi le labels e i campi d'input: pannelloCampi.add(codice); pannelloCampi.add(aCode); pannelloCampi.add(nome); pannelloCampi.add(aNome); pannelloCampi.add(socProd); pannelloCampi.add(società); pannelloCampi.add(v100); pannelloCampi.add(venduti); pannelloCampi.add(c100); pannelloCampi.add(costo); pannelloCampi.add(g100); pannelloCampi.add(guadagno); // inserisco il pannelloCampi a nord dell'applet: pannelloApplet.add(pannelloCampi, BorderLayout.NORTH); //ActionListener(s) da implementare dopo questa classe Receiver1 receiver1 = new Receiver1(); Receiver2 receiver2 = new Receiver2(); // assegnazione ActionListener(s) ai corrispondenti JButton(s) assegnazione ActionListener(s) ai corrispondenti JButton(s) bottone[0].addActionListener(receiver1); bottone[1].addActionListener(receiver2); } class Receiver1 implements ActionListener { public void actionPerformed(ActionEvent e) { String codiceArticolo = aCode.getText (); String nomeArticolo = aNome.getText (); String societàProduzione = società.getText (); String venduti100 = venduti.getText (); String costo100 = costo.getText (); String guadagno100 = guadagno.getText (); // Creo un file su cui scrivere, lo denomino per ora prova.odt try{ FileOutputStream prova = new FileOutputStream("/home/jekotojava/Documenti/prova.odt"); PrintStream scrivi = new PrintStream(prova); // Scrivo sul nuovo standard output: scrivi.println("\n Positivi.\n"); scrivi.println("*P Codice dell'articolo: "+ codiceArticolo); scrivi.println("*P Nome dell'articolo: "+ nomeArticolo); scrivi.println("*P Società produttrice dell'articolo: "+ societàProduzione); scrivi.println("*P Percentuale di articoli venduti al mese: "+ venduti100); scrivi.println("*P Costo di 100 unità (€): "+ costo100); scrivi.println("*P Guagagno con 100 unità vendute (€): "+ guadagno100); scrivi.println("\n Articolo giudicato di guadagno."); }catch (IOException ioe){ System.out.println("Errore: " + ioe); } } } class Receiver2 implements ActionListener { public void actionPerformed(ActionEvent e) { String codiceArticolo = aCode.getText (); String nomeArticolo = aNome.getText (); String societàProduzione = società.getText (); String venduti100 = venduti.getText (); String costo100 = costo.getText (); String guadagno100 = guadagno.getText (); // Creo un file su cui scrivere, lo denomino per ora nonProva.odt try{ FileOutputStream prova = new FileOutputStream("/home/jekotojava/Documenti/nonProva.odt"); PrintStream scrivi = new PrintStream(prova); // Scrivo sul nuovo standard output: scrivi.println("\n Negativi.\n"); scrivi.println("*P Codice dell'articolo: "+ codiceArticolo); scrivi.println("*P Nome dell'articolo: "+ nomeArticolo); scrivi.println("*P Società produttrice dell'articolo: "+ societàProduzione); scrivi.println("*P Percentuale di articoli venduti al mese: "+ venduti100); scrivi.println("*P Costo di 100 unità (€): "+ costo100); scrivi.println("*P Guagagno con 100 unità vendute (€): "+ guadagno100); scrivi.println("\n Articolo giudicato di non-guadagno."); }catch (IOException ioe2){ System.out.println("Errore: " + ioe2); } } } }

Rispondi quotando
