OptionFrame.java (4940B)
1 /* 2 Copyright 2009 Sebastiano Tronto <sebastiano@luganega.org> 3 4 This file is part of JBriscola. 5 6 JBriscola is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 11 JBriscola is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with JBriscola; if not, write to the Free Software 18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 20 */ 21 22 import java.util.Formatter; 23 import javax.swing.*; 24 import java.awt.*; 25 import java.awt.event.*; 26 27 public class OptionFrame extends JFrame { 28 public static Main main = new Main(); 29 public static Formatter formatter; 30 public static JButton ok, annulla, scegliColore; 31 public static JLabel lingua, sfondo; 32 public static JComboBox selezionaLingua; 33 public static JCheckBox suono, tastiRapidi; 34 public static JPanel[] pannello = new JPanel[6]; 35 public OptionFrame() { 36 super( "JBriscola - " + main.stringaModificaOpzioni ); 37 ok = new JButton( "OK" ); 38 ok.addActionListener( new ActionListener() { 39 public void actionPerformed( ActionEvent e ) { 40 try { 41 formatter = new Formatter( "JBriscolaConfig.txt" ); 42 } catch ( Exception ex ) { 43 JOptionPane.showMessageDialog( OptionFrame.this, main.stringaImpossibileConfigurare + ex, "JBriscola - " + main.version, JOptionPane.ERROR_MESSAGE ); 44 } 45 String lang; 46 switch ( selezionaLingua.getSelectedIndex() ) { 47 case 0: 48 lang = "it"; 49 break; 50 case 1: 51 lang = "la"; 52 break; 53 case 2: 54 lang = "bl"; 55 break; 56 case 3: 57 lang = "bv"; 58 break; 59 default: 60 lang = "it"; 61 break; 62 } 63 String suonosiono, tastisiono; 64 if ( suono.isSelected() ) 65 suonosiono = "suono=si"; 66 else 67 suonosiono = "suono=no"; 68 if ( tastiRapidi.isSelected() ) 69 tastisiono = "tasti=si"; 70 else 71 tastisiono = "tasti=no"; 72 formatter.format( lang ); 73 formatter.format( "\n" ); 74 formatter.format( suonosiono ); 75 formatter.format( "\n" ); 76 formatter.format( tastisiono ); 77 formatter.format( "\n" ); 78 formatter.format( main.color.getRed() + " " + main.color.getGreen() + " " + main.color.getBlue() ); 79 formatter.close(); 80 main.settaOpzioni(); 81 OptionFrame.this.dispose(); 82 //JOptionPane.showMessageDialog( OptionFrame.this, main.stringaNecessarioRiavviare, "JBriscola 0.1", JOptionPane.INFORMATION_MESSAGE ); 83 } 84 }); 85 annulla = new JButton( main.stringaAnnulla ); 86 annulla.addActionListener( new ActionListener() { 87 public void actionPerformed( ActionEvent e ) { 88 OptionFrame.this.dispose(); 89 } 90 }); 91 scegliColore = new JButton( " " ); 92 scegliColore.setBackground( main.color ); 93 scegliColore.addActionListener( new ActionListener() { 94 public void actionPerformed( ActionEvent e ) { 95 Color colore = JColorChooser.showDialog( OptionFrame.this, "JBriscola " + main.version, main.color ); 96 if ( colore != null ) 97 main.color = colore; 98 OptionFrame.scegliColore.setBackground( main.color ); 99 } 100 } ); 101 lingua = new JLabel( main.stringaLingua ); 102 sfondo = new JLabel( main.stringaSfondo ); 103 String[] lingueDaSelezionare = { main.stringaIt, main.stringaLa, main.stringaBL, main.stringaBV }; 104 selezionaLingua = new JComboBox( lingueDaSelezionare ); 105 int linguaPreselezionata = 0; 106 if ( main.lang.equals( "it" ) ) 107 linguaPreselezionata = 0; 108 else if ( main.lang.equals( "la" ) ) 109 linguaPreselezionata = 1; 110 else if ( main.lang.equals( "bl" ) ) 111 linguaPreselezionata = 2; 112 else if ( main.lang.equals( "bv" ) ) 113 linguaPreselezionata = 3; 114 selezionaLingua.setSelectedIndex( linguaPreselezionata ); 115 suono = new JCheckBox( main.stringaSuono ); 116 suono.setSelected( main.sound ); 117 tastiRapidi = new JCheckBox( main.stringaTasti ); 118 tastiRapidi.setSelected( main.keys ); 119 pannello[0] = new JPanel( new GridLayout( 4, 1 ) ); 120 pannello[1] = new JPanel( new FlowLayout() ); 121 pannello[2] = new JPanel( new FlowLayout() ); 122 pannello[3] = new JPanel( new FlowLayout() ); 123 pannello[4] = new JPanel( new FlowLayout() ); 124 pannello[5] = new JPanel( new FlowLayout() ); 125 pannello[5].add( ok ); 126 pannello[5].add( annulla ); 127 pannello[4].add( sfondo ); 128 pannello[4].add( scegliColore ); 129 pannello[3].add( tastiRapidi ); 130 pannello[2].add( suono ); 131 pannello[1].add( lingua ); 132 pannello[1].add( selezionaLingua ); 133 pannello[0].add( pannello[1] ); 134 pannello[0].add( pannello[2] ); 135 pannello[0].add( pannello[3] ); 136 pannello[0].add( pannello[4] ); 137 add( pannello[0], BorderLayout.CENTER ); 138 add( pannello[5], BorderLayout.SOUTH ); 139 } 140 }