SetFrame.java
上传用户:hainatieta
上传日期:2019-07-13
资源大小:1076k
文件大小:7k
源码类别:

外挂编程

开发平台:

Java

  1. package cn.seejava.lei2;
  2. import java.awt.Checkbox;
  3. import java.awt.CheckboxGroup;
  4. import java.awt.Choice;
  5. import java.awt.FlowLayout;
  6. import java.awt.HeadlessException;
  7. import java.awt.Toolkit;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.io.BufferedReader;
  11. import java.io.BufferedWriter;
  12. import java.io.File;
  13. import java.io.FileNotFoundException;
  14. import java.io.FileReader;
  15. import java.io.FileWriter;
  16. import java.io.IOException;
  17. import javax.swing.JButton;
  18. import javax.swing.JCheckBox;
  19. import javax.swing.JFrame;
  20. import javax.swing.JLabel;
  21. import javax.swing.JOptionPane;
  22. public class SetFrame extends JFrame implements ActionListener {
  23. public static final int width = 245;
  24. public static final int height = 300;
  25. public static File f = new File("config.ini");
  26. public static String defConfig = "1,1,0,0,0,11,1,1,1";
  27. JButton b1 = new JButton("保存设置");
  28. Choice ch = new Choice();
  29. Choice ch1 = new Choice();
  30. Choice ch2 = new Choice();
  31. JCheckBox jc1,jc2,jc3,jc4,jc8,jc9;
  32. Checkbox jc5,jc6;
  33. JLabel jl = new JLabel("房间人数小于此数退出此房间");
  34. JLabel jl1 = new JLabel("金牌代理设置");
  35. JLabel jl2 = new JLabel("                    ");
  36. CheckboxGroup cbg = new CheckboxGroup();
  37.     public SetFrame(){
  38.      this.setBounds((getScreenWidth()-width)/2,(getScreenHeight()-height)/2,width,height);
  39.      this.setTitle("参数设置");
  40.      this.setResizable(false);
  41.      //JCheckBox jc = new JCheckBox("请选择", true); 
  42.      ch.add("10");
  43.      ch.add("11");
  44.      ch.add("12");
  45.      ch.add("13");
  46.      ch.add("14");
  47.      ch2.add("不使用代理");
  48.      ch2.add("电信代理一");
  49.      ch2.add("电信代理二");
  50.      b1.addActionListener(this);
  51.      loadConfig();
  52.      this.setLayout(new FlowLayout(FlowLayout.LEFT));
  53.         //this.add(jc);
  54.      this.setVisible(true);
  55.      this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  56.     
  57.     }
  58. private int getScreenWidth(){
  59.    return Toolkit.getDefaultToolkit().getScreenSize().width;
  60. }
  61. private int getScreenHeight(){
  62.    return Toolkit.getDefaultToolkit().getScreenSize().height;
  63. }
  64. @Override
  65. public void actionPerformed(ActionEvent e) {
  66. // TODO Auto-generated method stub
  67.         if(e.getSource()==b1){
  68.          //保存用户设置
  69.          int para[] = {0,0,0,0,0,11,1,1,1};
  70.          if(jc1.isSelected()){
  71.          para[0]=1;
  72.          }
  73.          if(jc2.isSelected()){
  74.          para[1]=1;
  75.          }
  76.          if(jc3.isSelected()){
  77.          para[2]=1;
  78.          }
  79.          if(jc4.isSelected()){
  80.          para[3]=1;
  81.          }
  82.          if(jc5.getState()){
  83.          para[4]=1;
  84.          }
  85.          if(Integer.parseInt((ch.getSelectedItem()))!=11){
  86.          para[5]=Integer.parseInt((ch.getSelectedItem()));
  87.          }
  88.          if(ch2.getSelectedItem().equals("不使用代理")){
  89.          para[6]=1;
  90.          }
  91.          if(ch2.getSelectedItem().equals("电信代理一")){
  92.          para[6]=2;
  93.          }
  94.          if(ch2.getSelectedItem().equals("电信代理二")){
  95.          para[6]=3;
  96.          }
  97.          if(!jc8.isSelected()){
  98.          para[7]=0;
  99.          }
  100.          if(!jc9.isSelected()){
  101.          para[8]=0;
  102.          }
  103.          String str = para[0]+","+para[1]+","+para[2]+","+para[3]+","+para[4]+","+para[5]+","+para[6]+","+para[7]+","+para[8];
  104.          createConfig(str);
  105.          this.dispose();
  106.         }
  107. }
  108. public void loadConfig(){
  109. if(f.exists()){
  110. //直接加载
  111. FileReader fr;
  112. try {
  113. fr = new FileReader(f);
  114. BufferedReader br = new BufferedReader(fr);
  115. String conf = null;
  116. if((conf=br.readLine())!=null){
  117. //
  118. String str[] = conf.split(",");
  119. //System.out.println(str.length);
  120. for(int i=0;i<str.length;i++){
  121. //System.out.println(str[i]);
  122. switch(i){
  123. case 0:
  124. if(Integer.parseInt(str[i])==0){
  125. //不需要自动准备
  126. jc1 = new JCheckBox("自动准备", false);
  127. }else{
  128. jc1 = new JCheckBox("自动准备", true);
  129. }
  130. break;
  131. case 1:
  132. if(Integer.parseInt(str[i])==0){
  133. //自动自杀
  134. jc2 = new JCheckBox("自动自杀", false);
  135. }else{
  136. jc2 = new JCheckBox("自动自杀", true);
  137. }
  138. break;
  139. case 2:
  140. if(Integer.parseInt(str[i])==0){
  141. jc3 = new JCheckBox("自动土匪", false);
  142. }else{
  143. jc3 = new JCheckBox("自动土匪", true);
  144. }
  145. break;
  146. case 3:
  147. if(Integer.parseInt(str[i])==0){
  148. jc4 = new JCheckBox("自动F5,F6喊话", false);
  149. }else{
  150. jc4 = new JCheckBox("自动F5,F6喊话", true);
  151. }
  152. break;
  153. case 4:
  154. if(Integer.parseInt(str[i])==0){
  155. jc5 = new Checkbox("成为房主自动开始游戏",cbg, false);
  156. jc6 = new Checkbox("成为房主退出房间",cbg,true);
  157. //this.add("one",cbg);
  158. }else{
  159. jc5 = new Checkbox("成为房主自动开始游戏",cbg, true);
  160. jc6 = new Checkbox("成为房主退出房间",cbg,false);
  161. }
  162. //cbg.add(jc5);
  163. break;
  164. case 5:
  165. switch(Integer.parseInt(str[i])){
  166. case 10:
  167. ch.select("10");
  168. break;
  169. case 11:
  170. ch.select("11");
  171. break;
  172. case 12:
  173. ch.select("12");
  174. break;
  175. case 13:
  176. ch.select("13");
  177. break;
  178. case 14:
  179. ch.select("14");
  180. break;
  181. }
  182. break;
  183. case 6:
  184. switch(Integer.parseInt(str[i])){
  185. case 1:
  186. ch2.select("不使用代理");
  187. break;
  188. case 2:
  189. ch2.select("电信代理一");
  190. break;
  191. case 3:
  192. ch2.select("电信代理二");
  193. break;
  194. }
  195. break;
  196. case 7:
  197. if(Integer.parseInt(str[i])==0){
  198. //自动自杀
  199. jc8 = new JCheckBox("房主三分钟不开始游戏自动退出此房", false);
  200. }else{
  201. jc8 = new JCheckBox("房主三分钟不开始游戏自动退出此房", true);
  202. }
  203. break;
  204. case 8:
  205. if(Integer.parseInt(str[i])==0){
  206. jc9 = new JCheckBox("被T后自动快速加入",false);
  207. }else{
  208. jc9 = new JCheckBox("被T后自动快速加入",true);
  209. }
  210. }
  211. }
  212. }else{
  213. createConfig(defConfig);
  214. loadConfig();
  215. //JOptionPane.showMessageDialog(null, "加载配置文件出错");
  216. }
  217. br.close();
  218. this.add(jc1);
  219. this.add(jc2);
  220. this.add(jc3);
  221. this.add(jc4);
  222. this.add(jc8);
  223. this.add(jc9);
  224. this.add(jc5);
  225. this.add(jc6);
  226. this.add(jl);
  227. this.add(ch);
  228. this.add(jl1);
  229. this.add(ch2);
  230. this.add(jl2);
  231. this.add(b1);
  232. //this.add("one",cbg,);
  233. } catch (FileNotFoundException e) {
  234. // TODO Auto-generated catch block
  235. e.printStackTrace();
  236. } catch (HeadlessException e) {
  237. // TODO Auto-generated catch block
  238. e.printStackTrace();
  239. } catch (IOException e) {
  240. // TODO Auto-generated catch block
  241. e.printStackTrace();
  242. }
  243. }else{
  244. //先写入 1 ,1 ,0 ,0 ,0, 11
  245. createConfig(defConfig);
  246. //再调用自己
  247. loadConfig();
  248. }
  249. }
  250. public static void createConfig(String str){
  251. try {
  252. FileWriter fw = new FileWriter(f);
  253. BufferedWriter bw = new BufferedWriter(fw);
  254. bw.write(str);
  255. bw.close();
  256. } catch (IOException e) {
  257. // TODO Auto-generated catch block
  258. e.printStackTrace();
  259. }
  260. }
  261. }