Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Interfaz; import Datos.Nodo; import Logica.Lista; import Logica.Graficas; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.Timer; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.text.DecimalFormat; import javax.swing.JFrame; import javax.swing.JOptionPane; import org.jfree.chart.ChartPanel; /** * * @author Christian */ public class rubiktimer extends javax.swing.JFrame implements KeyListener { //Listas para cada tipo de cubo Lista listaT = new Lista(); //lista paramaetro Lista listaT2x2 = new Lista(); //Solves Cubo2x2 Lista listaT3x3 = new Lista(); //Solves Cubo3x3 Lista listaT4x4 = new Lista(); //Solves Cubo4x4 //Lista listaTMegaminx = new Lista(); //Solves CuboMegaminx //Lista listaTPyra = new Lista(); //Solves CuboPyraminx //Lista listaTMirror = new Lista(); //Solves CuboMirror3x3 Lista lista5mej = new Lista(); //Lista de 5 mejores tiempos Paramatro Lista lista5mej2x2 = new Lista(); //Lista 5 mejores tiempos2x2 Lista lista5mej3x3 = new Lista(); //Lista 5 mejores tiempos2x2 Lista lista5mej4x4 = new Lista(); //Lista 5 mejores tiempos2x2 Lista lista10mej = new Lista(); //Lista de 10 mejroes tiempos PARAMETRO Lista lista10mej2x2 = new Lista(); //Lista 10 mejores tiempos2x2 Lista lista10mej3x3 = new Lista(); //Lista 10 mejores tiempos2x2 Lista lista10mej4x4 = new Lista(); //Lista 10 mejores tiempos2x2 public Graficas miGrafica; private Timer t, t_atras; // Tiempos private String Scramble = "Scramble: F r D l U r u d B f R R d b L U D r f L"; // Variable Scramble private String Scramble4x4 = "";//para el cubo 4x4 es diferene private String Scramble_parametro;//Scramble parametro private int m, s, cs, aux;//aux espara guardar el tiezmpo atras //Variables para tiempos private int img = -1;//variable para indicar que primero se debe elegir una cateforiade cubo private int cuenta_atras; //Varaiable par aconteo atrasSELECCIONen ComboBox private int segundos_atras = 0; //Varaiable par aconteo atras private int verificador = 0; //Se debe seleccionar primero una categoria de cubo private int verifi = 0; private int tipoCubScramble; private int tipoGuardar; private double cent_seg, minutos, tiempo; //variables para conversion de tiempos String[] letras_scramble = { "F", "f", "D", "d", "B", "b", "L", "l", "R", "r", "U", "u" }; String[] letras_scramble4x4 = { "RR", "II", "F", "f", "D", "II", "d", "B", "b", "L", "RR", "l", "R", "r", "U", "u", "RR", "II", "FF", "BB" };//Letras para Scramble public DecimalFormat decimales = new DecimalFormat("0.00"); //CONSTRUCTOR DE LA CLASE rubiktimer public rubiktimer() { addKeyListener(this); //acciones para el teclado initComponents(); //compentes(codigo generado) this.setSize(1305, 765); //size de la interfaz setLocationRelativeTo(null);//posicion t = new Timer(10, acciones); //tiempo prinicipal t_atras = new Timer(900, acciones_crono_atras); //tiempo conteo atras } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jMenuItem1 = new javax.swing.JMenuItem(); Tiempo = new javax.swing.JLabel(); titulo = new javax.swing.JLabel(); logo = new javax.swing.JLabel(); manoizq = new javax.swing.JLabel(); manoder = new javax.swing.JLabel(); Mej_Tiempo = new javax.swing.JLabel(); Peor_Tiempo = new javax.swing.JLabel(); Prom = new javax.swing.JLabel(); labelScramble = new javax.swing.JLabel(); jScrollPane2 = new javax.swing.JScrollPane(); panel = new javax.swing.JPanel(); panel3x3 = new javax.swing.JPanel(); panel4x4 = new javax.swing.JPanel(); panel2x2 = new javax.swing.JPanel(); labelImagen = new javax.swing.JLabel(); elegir_cat = new javax.swing.JLabel(); Tiempo_Espera = new javax.swing.JLabel(); Selecc_tipoCubo = new javax.swing.JComboBox<>(); Selecc_cuentraAtras = new javax.swing.JComboBox<>(); infor = new javax.swing.JLabel(); mejores10list = new javax.swing.JLabel(); mejores5list = new javax.swing.JLabel(); AVG10 = new javax.swing.JLabel(); AVG5 = new javax.swing.JLabel(); NumSolves = new javax.swing.JLabel(); panelGrafica = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jMenuBar1 = new javax.swing.JMenuBar(); Menu1 = new javax.swing.JMenu(); Limpiar2x2 = new javax.swing.JMenuItem(); Limpiar3x3 = new javax.swing.JMenuItem(); Limpiar4x4 = new javax.swing.JMenuItem(); limpiarTodo = new javax.swing.JMenuItem(); jMenu1 = new javax.swing.JMenu(); jMenu4 = new javax.swing.JMenu(); guardar2x2 = new javax.swing.JMenuItem(); guardar3x3 = new javax.swing.JMenuItem(); guardar4x4 = new javax.swing.JMenuItem(); jMenu5 = new javax.swing.JMenu(); guardarCargar2x2 = new javax.swing.JMenuItem(); guardarCargar3x3 = new javax.swing.JMenuItem(); guardarCargar4x4 = new javax.swing.JMenuItem(); jMenu2 = new javax.swing.JMenu(); cargarArchivo = new javax.swing.JMenuItem(); ayudaScramble = new javax.swing.JMenu(); aydaScramble = new javax.swing.JMenuItem(); jMenu3 = new javax.swing.JMenu(); videoBasico = new javax.swing.JMenuItem(); videoFridrichRED = new javax.swing.JMenuItem(); videoFridrich = new javax.swing.JMenuItem(); jMenuItem1.setText("jMenuItem1"); setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); setTitle("RUBIK CUBE TIMER"); setBackground(new java.awt.Color(0, 0, 153)); getContentPane().setLayout(null); Tiempo.setFont(new java.awt.Font("Lucida Sans", 0, 125)); // NOI18N Tiempo.setForeground(new java.awt.Color(255, 255, 255)); Tiempo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Tiempo.setText("00:00.00"); getContentPane().add(Tiempo); Tiempo.setBounds(190, 170, 554, 146); titulo.setFont(new java.awt.Font("Franklin Gothic Demi", 3, 60)); // NOI18N titulo.setForeground(new java.awt.Color(255, 255, 255)); titulo.setText("Rubik's Cube Timer"); getContentPane().add(titulo); titulo.setBounds(240, 30, 581, 104); logo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/img/logogiff.gif"))); // NOI18N logo.setMaximumSize(new java.awt.Dimension(300, 300)); logo.setMinimumSize(new java.awt.Dimension(300, 300)); logo.setName(""); // NOI18N logo.setPreferredSize(new java.awt.Dimension(300, 300)); logo.setRequestFocusEnabled(false); getContentPane().add(logo); logo.setBounds(40, 10, 150, 160); manoizq.setIcon(new javax.swing.ImageIcon(getClass().getResource("/img/mi.png"))); // NOI18N getContentPane().add(manoizq); manoizq.setBounds(20, 160, 160, 160); manoder.setIcon(new javax.swing.ImageIcon(getClass().getResource("/img/md.png"))); // NOI18N getContentPane().add(manoder); manoder.setBounds(740, 160, 175, 160); Mej_Tiempo.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N Mej_Tiempo.setForeground(new java.awt.Color(255, 255, 255)); Mej_Tiempo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Mej_Tiempo.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Mejor Tiempo: ", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 16), new java.awt.Color(255, 255, 255))); // NOI18N getContentPane().add(Mej_Tiempo); Mej_Tiempo.setBounds(790, 420, 180, 50); Peor_Tiempo.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N Peor_Tiempo.setForeground(new java.awt.Color(255, 255, 255)); Peor_Tiempo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Peor_Tiempo.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Peor Tiempo: ", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 16), new java.awt.Color(255, 255, 255))); // NOI18N getContentPane().add(Peor_Tiempo); Peor_Tiempo.setBounds(980, 420, 180, 50); Prom.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N Prom.setForeground(new java.awt.Color(255, 255, 255)); Prom.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); Prom.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "AVG Total", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 16), new java.awt.Color(255, 255, 255))); // NOI18N getContentPane().add(Prom); Prom.setBounds(980, 490, 180, 50); labelScramble.setFont(new java.awt.Font("Microsoft YaHei", 1, 24)); // NOI18N labelScramble.setForeground(new java.awt.Color(255, 255, 255)); labelScramble.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); labelScramble.setText("Scramble: F r D l U r u d B f R R d b L U D r f L"); getContentPane().add(labelScramble); labelScramble.setBounds(-10, 330, 950, 33); panel.setBackground(new java.awt.Color(0, 0, 0)); panel.setToolTipText(""); panel.setFont(new java.awt.Font("Engravers MT", 1, 18)); // NOI18N panel.setLayout(new javax.swing.BoxLayout(panel, javax.swing.BoxLayout.PAGE_AXIS)); panel3x3.setBackground(new java.awt.Color(0, 0, 0)); panel3x3.setLayout(new javax.swing.BoxLayout(panel3x3, javax.swing.BoxLayout.PAGE_AXIS)); panel.add(panel3x3); panel4x4.setBackground(new java.awt.Color(0, 0, 0)); panel4x4.setLayout(new javax.swing.BoxLayout(panel4x4, javax.swing.BoxLayout.PAGE_AXIS)); panel.add(panel4x4); panel2x2.setBackground(new java.awt.Color(0, 0, 0)); panel2x2.setForeground(new java.awt.Color(255, 255, 255)); panel2x2.setLayout(new javax.swing.BoxLayout(panel2x2, javax.swing.BoxLayout.PAGE_AXIS)); panel.add(panel2x2); jScrollPane2.setViewportView(panel); getContentPane().add(jScrollPane2); jScrollPane2.setBounds(280, 440, 500, 250); labelImagen.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N labelImagen.setForeground(new java.awt.Color(255, 255, 255)); labelImagen.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); labelImagen.setVerticalAlignment(javax.swing.SwingConstants.TOP); labelImagen.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Cubo Actual", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 18), new java.awt.Color(255, 255, 255))); // NOI18N getContentPane().add(labelImagen); labelImagen.setBounds(10, 440, 250, 240); elegir_cat.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N elegir_cat.setForeground(new java.awt.Color(255, 255, 255)); elegir_cat.setText("Antes del primer solve se debe elegir una categoria de cubo"); getContentPane().add(elegir_cat); elegir_cat.setBounds(920, 10, 420, 40); Tiempo_Espera.setFont(new java.awt.Font("Tahoma", 0, 20)); // NOI18N Tiempo_Espera.setForeground(new java.awt.Color(255, 255, 255)); Tiempo_Espera.setText("Cuenta Atras:"); getContentPane().add(Tiempo_Espera); Tiempo_Espera.setBounds(290, 120, 150, 50); Selecc_tipoCubo.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N Selecc_tipoCubo.setModel(new javax.swing.DefaultComboBoxModel<>( new String[] { "Seleccion Categoria de Cubo", "3x3x3", "4x4x4", "2x2x2" })); Selecc_tipoCubo.setFocusable(false); Selecc_tipoCubo.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { Selecc_tipoCuboItemStateChanged(evt); } }); getContentPane().add(Selecc_tipoCubo); Selecc_tipoCubo.setBounds(990, 60, 220, 30); Selecc_cuentraAtras.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N Selecc_cuentraAtras.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "-------------------", "Sin Cuenta Atras", "3 Segundos", "5 Segundo", "10 Segundos", "15 Segundos" })); Selecc_cuentraAtras.setFocusable(false); Selecc_cuentraAtras.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { Selecc_cuentraAtrasItemStateChanged(evt); } }); getContentPane().add(Selecc_cuentraAtras); Selecc_cuentraAtras.setBounds(480, 130, 140, 40); infor.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N infor.setForeground(new java.awt.Color(255, 255, 255)); infor.setText("Pulse la tecla ESPACIO para iniciar Cuenta Atras, iniciar Cronomero y detener Cronometro"); getContentPane().add(infor); infor.setBounds(170, 380, 670, 20); mejores10list.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N mejores10list.setForeground(new java.awt.Color(255, 255, 255)); mejores10list.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); mejores10list.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "10 Mejores", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 16), new java.awt.Color(255, 255, 255))); // NOI18N getContentPane().add(mejores10list); mejores10list.setBounds(1170, 430, 110, 250); mejores5list.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N mejores5list.setForeground(new java.awt.Color(255, 255, 255)); mejores5list.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); mejores5list.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "5 Mejores", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 16), new java.awt.Color(255, 255, 255))); // NOI18N getContentPane().add(mejores5list); mejores5list.setBounds(790, 560, 180, 130); AVG10.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N AVG10.setForeground(new java.awt.Color(255, 255, 255)); AVG10.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); AVG10.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "AVG 10 Mejores", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 16), new java.awt.Color(51, 255, 0))); // NOI18N getContentPane().add(AVG10); AVG10.setBounds(980, 630, 180, 50); AVG5.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N AVG5.setForeground(new java.awt.Color(255, 255, 255)); AVG5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); AVG5.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "AVG 5 Mejores", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 16), new java.awt.Color(102, 255, 0))); // NOI18N getContentPane().add(AVG5); AVG5.setBounds(980, 570, 180, 50); NumSolves.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N NumSolves.setForeground(new java.awt.Color(255, 255, 255)); NumSolves.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); NumSolves.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Numero de Solves", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 16), new java.awt.Color(255, 255, 255))); // NOI18N getContentPane().add(NumSolves); NumSolves.setBounds(790, 490, 180, 50); panelGrafica.setBackground(new java.awt.Color(0, 0, 0)); panelGrafica.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Desempeo", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 16), new java.awt.Color(255, 255, 255))); // NOI18N panelGrafica.setLayout(new javax.swing.BoxLayout(panelGrafica, javax.swing.BoxLayout.LINE_AXIS)); getContentPane().add(panelGrafica); panelGrafica.setBounds(910, 100, 360, 290); jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/img/fondo1.jpg"))); // NOI18N jLabel1.setText("jLabel1"); jLabel1.setMaximumSize(new java.awt.Dimension(3000, 3000)); jLabel1.setPreferredSize(new java.awt.Dimension(1084, 660)); getContentPane().add(jLabel1); jLabel1.setBounds(0, -10, 1380, 750); jMenuBar1.setBackground(new java.awt.Color(51, 51, 51)); jMenuBar1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED)); jMenuBar1.setBorderPainted(false); jMenuBar1.setFocusable(false); jMenuBar1.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N Menu1.setForeground(new java.awt.Color(255, 255, 255)); Menu1.setText("Borrar Tiempos"); Menu1.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N Limpiar2x2.setText("Borrar Solves 2 x 2"); Limpiar2x2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Limpiar2x2ActionPerformed(evt); } }); Menu1.add(Limpiar2x2); Limpiar3x3.setText("Borrar Solves 3 x 3"); Limpiar3x3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Limpiar3x3ActionPerformed(evt); } }); Menu1.add(Limpiar3x3); Limpiar4x4.setText("Borrar Solves 4 x 4"); Limpiar4x4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { Limpiar4x4ActionPerformed(evt); } }); Menu1.add(Limpiar4x4); limpiarTodo.setText("Borrar Todo"); limpiarTodo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { limpiarTodoActionPerformed(evt); } }); Menu1.add(limpiarTodo); jMenuBar1.add(Menu1); jMenu1.setForeground(new java.awt.Color(255, 255, 255)); jMenu1.setText("Guardar Tiempos"); jMenu1.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N jMenu4.setText("Guardar Datos para Usuario"); guardar2x2.setText("2x2"); guardar2x2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { guardar2x2ActionPerformed(evt); } }); jMenu4.add(guardar2x2); guardar3x3.setText("3x3"); guardar3x3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { guardar3x3ActionPerformed(evt); } }); jMenu4.add(guardar3x3); guardar4x4.setText("4x4"); guardar4x4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { guardar4x4ActionPerformed(evt); } }); jMenu4.add(guardar4x4); jMenu1.add(jMenu4); jMenu5.setText("Guardar Datos para Cargar"); guardarCargar2x2.setText("2x2 Guardar para Cargar"); guardarCargar2x2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { guardarCargar2x2ActionPerformed(evt); } }); jMenu5.add(guardarCargar2x2); guardarCargar3x3.setText("3x3 Guardar para Cargar"); guardarCargar3x3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { guardarCargar3x3ActionPerformed(evt); } }); jMenu5.add(guardarCargar3x3); guardarCargar4x4.setText("4x4 Guardar para Cargar"); guardarCargar4x4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { guardarCargar4x4ActionPerformed(evt); } }); jMenu5.add(guardarCargar4x4); jMenu1.add(jMenu5); jMenuBar1.add(jMenu1); jMenu2.setForeground(new java.awt.Color(255, 255, 255)); jMenu2.setText("Cargar Datos"); jMenu2.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N cargarArchivo.setText("Cargar Archivo"); cargarArchivo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cargarArchivoActionPerformed(evt); } }); jMenu2.add(cargarArchivo); jMenuBar1.add(jMenu2); ayudaScramble.setForeground(new java.awt.Color(255, 255, 255)); ayudaScramble.setText("Que es Scramble?"); ayudaScramble.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N aydaScramble.setText("Que es un Scramble?"); aydaScramble.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { aydaScrambleActionPerformed(evt); } }); ayudaScramble.add(aydaScramble); jMenuBar1.add(ayudaScramble); jMenu3.setForeground(new java.awt.Color(255, 255, 255)); jMenu3.setText("Como resolver un cubo de 3x3?"); jMenu3.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N videoBasico.setText("Metodo Basico - Video Tutorial (fuente Youtube, Canal: DaLiWasHereTv)"); videoBasico.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { videoBasicoActionPerformed(evt); } }); jMenu3.add(videoBasico); videoFridrichRED.setText("Metodo Fridrich (reducido) - Video Tutorial (fuente Youtube, Canal: TheMaoiSha)"); videoFridrichRED.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { videoFridrichREDActionPerformed(evt); } }); jMenu3.add(videoFridrichRED); videoFridrich.setText("Metodo Fridrich (completo) - Video Tutorial (fuente Youtube, Canal Cuby)"); videoFridrich.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { videoFridrichActionPerformed(evt); } }); jMenu3.add(videoFridrich); jMenuBar1.add(jMenu3); setJMenuBar(jMenuBar1); pack(); }// </editor-fold>//GEN-END:initComponents public void cerrar() { try { this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent w) { int valor = JOptionPane.showConfirmDialog(null, "Esta Seguro de cerrar la aplicacion?\nNota: Asegurese de haber guardado los tiempos obtenidos ", "Cerrar Rubik Cube Timer", JOptionPane.OK_CANCEL_OPTION); if (valor == JOptionPane.OK_OPTION) { JOptionPane.showMessageDialog(null, "Gracias por usar Rubik Cube Timer", "Gracias", JOptionPane.INFORMATION_MESSAGE); System.exit(0); } else if (valor == JOptionPane.CANCEL_OPTION) { System.out.println("Cnacelar Operacion de cerrar"); } } }); this.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } private void Selecc_tipoCuboItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_Selecc_tipoCuboItemStateChanged // TODO add your handling code here: img = Selecc_tipoCubo.getSelectedIndex(); switch (img) { case 1://Se elege el cubo de 3x3 ++img; ImageIcon imagen = new ImageIcon(this.getClass().getResource("/img/3x3.png")); labelImagen.setIcon(imagen); tipoCubScramble = 0; lista10mej = lista10mej3x3; lista5mej = lista5mej3x3; listaT = listaT3x3; panel = panel3x3; panel3x3.setVisible(true); panel2x2.setVisible(false); panel4x4.setVisible(false); elegir_cat.setEnabled(false); panelGrafica.removeAll(); actualizar_estad(); actualizarLabel(); actualizar_cambio_cat(); actualizarScramble(); actualizarGrafica(); verifi = 1; break; case 2://Se elife el cubo de 4x4 ++img; ImageIcon imagen2 = new ImageIcon(this.getClass().getResource("/img/4x4.png")); labelImagen.setIcon(imagen2); tipoCubScramble = 1; lista10mej = lista10mej4x4; lista5mej = lista5mej4x4; listaT = listaT4x4; panel = panel4x4; panel2x2.setVisible(false); panel3x3.setVisible(false); panel4x4.setVisible(true); elegir_cat.setEnabled(false); panelGrafica.removeAll(); actualizar_estad(); actualizarLabel(); actualizar_cambio_cat(); actualizarScramble4x4(); actualizarGrafica(); verifi = 1; break; case 3://Se elige el cubo de 2x2 ++img; ImageIcon imagen3 = new ImageIcon(this.getClass().getResource("/img/2x2.png")); labelImagen.setIcon(imagen3); tipoCubScramble = 0; lista10mej = lista10mej2x2; lista5mej = lista5mej2x2; listaT = listaT2x2; panel = panel2x2; panel2x2.setVisible(true); panel3x3.setVisible(false); panel4x4.setVisible(false); elegir_cat.setEnabled(false); panelGrafica.removeAll(); actualizar_estad(); actualizarLabel(); actualizar_cambio_cat(); actualizarScramble(); actualizarGrafica(); verifi = 1; break; } }//GEN-LAST:event_Selecc_tipoCuboItemStateChanged private void Selecc_cuentraAtrasItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_Selecc_cuentraAtrasItemStateChanged // TODO add your handling code here: cuenta_atras = Selecc_cuentraAtras.getSelectedIndex(); switch (cuenta_atras) { case 1:// Sin conteo atras segundos_atras = 0; aux = segundos_atras; break; case 2://Conteo Atras de 3 segundos segundos_atras = 3; aux = segundos_atras; break; case 3://Conteo Atras de 5 segundos segundos_atras = 5; aux = segundos_atras; break; case 4://Conteo Atras de 10 segundos segundos_atras = 10; aux = segundos_atras; break; case 5://Conteo Atras de 15 segundos segundos_atras = 15; aux = segundos_atras; break; } }//GEN-LAST:event_Selecc_cuentraAtrasItemStateChanged private void Limpiar3x3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Limpiar3x3ActionPerformed if (img == 2) { ConsultaLimpiar dialog = new ConsultaLimpiar(new javax.swing.JFrame(), true, "3 x 3"); dialog.setVisible(true); if (dialog.verif == 1) { listaT = new Lista(); listaT3x3 = new Lista(); lista5mej = new Lista(); lista5mej3x3 = new Lista(); lista10mej = new Lista(); lista10mej3x3 = new Lista(); panel3x3.removeAll(); panel3x3.updateUI(); panelGrafica.removeAll(); panelGrafica.updateUI(); dialog.verif = 0; actualizar_estad(); } } else { JOptionPane.showMessageDialog(null, "Para eliminar la informacion de esta Categoria tiene que estar dentro de la misma (3x3)", "Ingrese en la categoria 3x3", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_Limpiar3x3ActionPerformed private void Limpiar2x2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Limpiar2x2ActionPerformed // TODO add your handling code here: if (img == 4) { ConsultaLimpiar dialog = new ConsultaLimpiar(new javax.swing.JFrame(), true, "2 x 2"); dialog.setVisible(true); if (dialog.verif == 1) { listaT = new Lista(); listaT2x2 = new Lista(); lista5mej = new Lista(); lista5mej2x2 = new Lista(); lista10mej = new Lista(); lista10mej2x2 = new Lista(); panel2x2.removeAll(); panel2x2.updateUI(); panelGrafica.removeAll(); panelGrafica.validate(); dialog.verif = 0; actualizar_estad(); } } else { JOptionPane.showMessageDialog(null, "Para eliminar la informacion de esta Categoria tiene que estar dentro de la misma (2x2)", "Ingrese en la categoria 2x2", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_Limpiar2x2ActionPerformed private void Limpiar4x4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_Limpiar4x4ActionPerformed // TODO add your handling code here: if (img == 3) { ConsultaLimpiar dialog = new ConsultaLimpiar(new javax.swing.JFrame(), true, "4 x 4"); dialog.setVisible(true); if (dialog.verif == 1) { listaT = new Lista(); listaT4x4 = new Lista(); lista5mej = new Lista(); lista5mej4x4 = new Lista(); lista10mej = new Lista(); lista10mej4x4 = new Lista(); panel4x4.removeAll(); panel4x4.updateUI(); panel.updateUI(); panelGrafica.removeAll(); panelGrafica.validate(); dialog.verif = 0; actualizar_estad(); } } else { JOptionPane.showMessageDialog(null, "Para eliminar la informacion de esta Categoria tiene que estar dentro de la misma (4x4)", "Ingrese en la categoria 4x4", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_Limpiar4x4ActionPerformed private void guardar3x3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guardar3x3ActionPerformed if (listaT3x3.primero != null) { GuardarDatos dat = new GuardarDatos(); dat.guardarArchivo(listaT3x3, "3 x 3", 1); } else { JOptionPane.showMessageDialog(null, "No puede guardar en un documento una Sesion VACIA (3x3)", "Informacin", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_guardar3x3ActionPerformed private void guardar2x2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guardar2x2ActionPerformed // TODO add your handling code here: if (listaT2x2.primero != null) { GuardarDatos dat = new GuardarDatos(); dat.guardarArchivo(listaT2x2, "2 x 2", 1); } else { JOptionPane.showMessageDialog(null, "No puede guardar en un documento una Sesion VACIA (2x2)", "Informacin", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_guardar2x2ActionPerformed private void guardar4x4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guardar4x4ActionPerformed // TODO add your handling code here: if (listaT4x4.primero != null) { GuardarDatos dat = new GuardarDatos(); dat.guardarArchivo(listaT4x4, "4 x 4", 1); } else { JOptionPane.showMessageDialog(null, "No puede guardar en un documento una Sesion VACIA (4x4)", "Sesion Vacia", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_guardar4x4ActionPerformed private void limpiarTodoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_limpiarTodoActionPerformed // TODO add your handling code here: if (verifi != 0) { ConsultaLimpiar dialog = new ConsultaLimpiar(new javax.swing.JFrame(), true, "TODAS LAS CATEGORIAS"); dialog.setVisible(true); if (dialog.verif == 1) { verifi = 0; listaT = new Lista(); listaT2x2 = new Lista(); listaT3x3 = new Lista(); listaT4x4 = new Lista(); lista5mej = new Lista(); lista5mej2x2 = new Lista(); lista5mej3x3 = new Lista(); lista5mej4x4 = new Lista(); lista10mej = new Lista(); lista10mej2x2 = new Lista(); lista10mej3x3 = new Lista(); lista10mej4x4 = new Lista(); panel2x2.removeAll(); panel3x3.removeAll(); panel4x4.removeAll(); panel.removeAll(); panel.updateUI(); panelGrafica.removeAll(); panelGrafica.validate(); actualizar_estad(); actualizarLabel(); actualizarGrafica(); ; dialog.verif = 0; } } else { JOptionPane.showMessageDialog(null, "Todo esta vacio", "Informacion", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_limpiarTodoActionPerformed private void aydaScrambleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_aydaScrambleActionPerformed // TODO add your handling code here: AyudaScramble dialog = new AyudaScramble(new javax.swing.JFrame(), true); dialog.setVisible(true); }//GEN-LAST:event_aydaScrambleActionPerformed private void cargarArchivoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cargarArchivoActionPerformed // TODO add your handling code here: if (listaT.primero == null) { JOptionPane.showMessageDialog(null, "El archivo a cargar debe ser un archivo que se guardo en la Opcion (Guardar Datos Para Cargar) y no de la opcion (Guardar Datos Para Usuario), si se intenta cargar un archivo de usuario no se cargara ningun dato", "Informacin", JOptionPane.INFORMATION_MESSAGE); CargarDat ventanaVisualizar = new CargarDat(); ventanaVisualizar.cargArchivo(listaT, lista5mej, lista10mej); actualizar_estad(); Lista nueva = new Lista(); nueva = listaT; Nodo actual; actual = nueva.primero; while ((actual != null)) { JLabel nuevo_tiempo = new JLabel(actual.getDato_string()); nuevo_tiempo.setFont(new java.awt.Font("Lucida Sans", 0, 25)); nuevo_tiempo.setForeground(Color.yellow); JButton eliminar = new JButton("Eliminar Tiempo"); eliminar.setFocusable(false); JButton Penalizacion = new JButton("Penalizacion +2"); Penalizacion.setFocusable(false); JButton DNF = new JButton("DNF"); DNF.setFocusable(false); /*if (tipoCubScramble == 0) { Scramble_parametro = Scramble; } else { Scramble_parametro = Scramble4x4; }*/ JLabel nuevo_Scramble = new JLabel(actual.getScramble()); nuevo_Scramble.setFont(new java.awt.Font("Lucida Sans", 0, 15)); nuevo_Scramble.setForeground(Color.white); panel.add(nuevo_tiempo); panel.add(nuevo_Scramble); panel.add(eliminar); panel.add(Penalizacion); panel.add(DNF); panel.updateUI(); funcionalidad_botones(nuevo_tiempo, nuevo_Scramble, eliminar, Penalizacion, DNF); actual = actual.enlace; } actualizarGrafica(); System.out.println("LISTAAAAAAAAA LOOOOOOL "); System.out.println(listaT.primero.getDato_string()); } else { JOptionPane.showMessageDialog(null, "No puede guardar en un documento una Sesion VACIA", "Sesion Vacia", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_cargarArchivoActionPerformed private void guardarCargar2x2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guardarCargar2x2ActionPerformed // TODO add your handling code here: if (listaT2x2.primero != null) { GuardarDatos dat = new GuardarDatos(); dat.guardarArchivo(listaT2x2, "2 x 2", 2); } else { JOptionPane.showMessageDialog(null, "No puede guardar en un documento una Sesion VACIA (2x2)", "Informacin", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_guardarCargar2x2ActionPerformed private void guardarCargar3x3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guardarCargar3x3ActionPerformed // TODO add your handling code here: if (listaT3x3.primero != null) { GuardarDatos dat = new GuardarDatos(); dat.guardarArchivo(listaT3x3, "3 x 3", 2); } else { JOptionPane.showMessageDialog(null, "No puede guardar en un documento una Sesion VACIA (3x3)", "Informacin", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_guardarCargar3x3ActionPerformed private void guardarCargar4x4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_guardarCargar4x4ActionPerformed // TODO add your handling code here: if (listaT4x4.primero != null) { GuardarDatos dat = new GuardarDatos(); dat.guardarArchivo(listaT4x4, "4 x 4", 2); } else { JOptionPane.showMessageDialog(null, "No puede guardar en un documento una Sesion VACIA (4x4)", "Informacin", JOptionPane.INFORMATION_MESSAGE); } }//GEN-LAST:event_guardarCargar4x4ActionPerformed private void videoBasicoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_videoBasicoActionPerformed // TODO add your handling code here: Tutorial vid = new Tutorial("https://www.youtube.com/watch_popup?v=zoKpsye580w"); vid.main(letras_scramble); }//GEN-LAST:event_videoBasicoActionPerformed private void videoFridrichREDActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_videoFridrichREDActionPerformed // TODO add your handling code here: Tutorial vid = new Tutorial("https://www.youtube.com/watch_popup?v=8-5xNJI3xlI"); vid.main(letras_scramble); }//GEN-LAST:event_videoFridrichREDActionPerformed private void videoFridrichActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_videoFridrichActionPerformed // TODO add your handling code here: Tutorial vid = new Tutorial("https://www.youtube.com/watch_popup?v=d_hR8pn67wA"); vid.main(letras_scramble); }//GEN-LAST:event_videoFridrichActionPerformed public void actualizar_estad() { //Actualizar campos de Estadistica actualizar_MejorTIempo(); actualizar_Peor_Tiempo(); actualizar_Promedio(); actualizar_list5_mejores(); actualizarAVG5(); actualizar_list10_mejores(); actualizarAVG10(); actualizarNumSolves(); } public void actualizar_cambio_cat() { //Actualizar label de tiempo cada vez que se cambia la categoria m = 0; s = 0; cs = 0; actualizarLabel(); } private ActionListener acciones = new ActionListener() { //Accion del tiempo de cada solve @Override public void actionPerformed(ActionEvent ae) { ++cs; if (cs == 100) { cs = 0; ++s; } if (s == 60) { s = 0; ++m; } actualizarLabel(); } }; private ActionListener acciones_crono_atras = new ActionListener() { //Accion para el conteo atras @Override public void actionPerformed(ActionEvent ae) { segundos_atras--; actualizarLabel_atras(); if (segundos_atras == -1) { t_atras.stop(); t.start(); } } }; private void actualizarLabel() { //Actualizar el Label del tiempo del solve String tiempo_t = (m <= 9 ? "0" : "") + m + ":" + (s <= 9 ? "0" : "") + s + "." + (cs <= 9 ? "0" : "") + cs; Tiempo.setText(tiempo_t); segundos_atras = aux; } private void actualizarLabel_atras() { //Actualizar label del conteo atras if (segundos_atras == -1) { t_atras.stop(); } String tiempo = (segundos_atras <= 9 ? "0" : "") + segundos_atras; ; Tiempo.setText(tiempo); } private void actualizarScramble() { //Generador de Scramble int x = 0; Scramble = "Scramble: "; while (x <= 19) { int numRandon = (int) Math.round(Math.random() * 11); Scramble = Scramble + " " + letras_scramble[numRandon]; x++; } labelScramble.setText(Scramble); } private void actualizarScramble4x4() { int x = 0; Scramble4x4 = "Scramble: "; System.out.println("4x4 scramble"); while (x <= 22) { int numRandon = (int) Math.round(Math.random() * 19); System.out.println(numRandon); Scramble4x4 = Scramble4x4 + " " + letras_scramble4x4[numRandon]; x++; } labelScramble.setText(Scramble4x4); } private void actualizar_MejorTIempo() { //Acualizar campode mejor tiempo if (listaT.primero == null) { String lista_vacia = (" Sin Datos"); Mej_Tiempo.setText(lista_vacia); } else { String mejor_tiem = (" " + decimales.format(listaT.mejor_tiempo()) + " segundos"); Mej_Tiempo.setText(mejor_tiem); } } private void actualizar_Peor_Tiempo() { //Actualizar Campode peor tiempo if (listaT.primero == null) { String lista_vacia = (" Sin Datos"); Peor_Tiempo.setText(lista_vacia); } else { String peor_tiem = (" " + decimales.format(listaT.peor_tiempo()) + " segundos"); Peor_Tiempo.setText(peor_tiem); } } private void actualizar_Promedio() { //Actualizar Campo de Peor Tiempos if (listaT.primero == null) { String lista_vacia = (" Sin Datos"); Prom.setText(lista_vacia); } else { String promd = (" " + decimales.format(listaT.prom_Total()) + " segundos"); Prom.setText(promd); } } private void actualizar_list5_mejores() { if (lista5mej.primero == null) { String lista_vacia = (""); mejores5list.setText(lista_vacia); } else { String _mej = (lista5mej.listar5(lista5mej)); mejores5list.setText(_mej); } } private void actualizarAVG5() { if (lista5mej.primero == null) { String avg5 = (""); AVG5.setText(avg5); } else { String avg5 = ("" + decimales.format(lista5mej.prom_Total())); AVG5.setText(avg5); } } private void actualizar_list10_mejores() { if (lista10mej.primero == null) { String lista_vacia = (""); mejores10list.setText(lista_vacia); } else { String _mej = (lista10mej.listar5(lista10mej)); mejores10list.setText(_mej); } } private void actualizarAVG10() { if (lista10mej.primero == null) { String avg5 = (""); AVG10.setText(avg5); } else { String avg5 = ("" + decimales.format(lista10mej.prom_Total())); AVG10.setText(avg5); } } private void actualizarNumSolves() { String NumSolvs = ("" + listaT.largoLista()); NumSolves.setText(NumSolvs); } private void actualizarGrafica() { miGrafica = new Graficas(Graficas.AREA, null); Lista x = listaT.obtListaNumSolves(listaT); Lista y = listaT; miGrafica.agragarGrafica("Grafica Tiempos-Solves", x, y, listaT.largoLista()); panelGrafica.setLayout(new java.awt.BorderLayout()); ChartPanel CP = new ChartPanel(miGrafica.obtener()); panelGrafica.add(CP, BorderLayout.CENTER); panelGrafica.validate(); } private void funcionalidad_botones(JLabel nuev_tiempo, JLabel scrambl, JButton elim, JButton penaliz, JButton dnf) { elim.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { System.out.println("///" + nuev_tiempo.getText() + "///"); listaT.eliminar(tiempo, nuev_tiempo.getText()); lista5mej.eliminar(tiempo, nuev_tiempo.getText()); lista10mej.eliminar(tiempo, nuev_tiempo.getText()); //lista5mej.actualizar5(lista5mej,listaT); //lista10mej.actualizar10(lista10mej,listaT); panel.remove(nuev_tiempo); panel.remove(scrambl); panel.remove(penaliz); panel.remove(elim); panel.remove(dnf); actualizar_estad(); actualizarGrafica(); panel.updateUI(); } }); penaliz.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { lista5mej.penalizacion(nuev_tiempo, nuev_tiempo.getText()); listaT.penalizacion(nuev_tiempo, nuev_tiempo.getText()); lista10mej.penalizacion(nuev_tiempo, nuev_tiempo.getText()); penaliz.setEnabled(false); actualizar_estad(); actualizarGrafica(); panel.updateUI(); } }); dnf.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { listaT.eliminar(tiempo, nuev_tiempo.getText()); lista5mej.eliminar(tiempo, nuev_tiempo.getText()); lista10mej.eliminar(tiempo, nuev_tiempo.getText()); nuev_tiempo.setEnabled(false); scrambl.setEnabled(false); elim.setEnabled(false); penaliz.setEnabled(false); dnf.setEnabled(false); actualizar_estad(); actualizarGrafica(); panel.updateUI(); } }); } @Override public void keyTyped(KeyEvent ke) { } @Override public void keyPressed(KeyEvent ke) { System.out.println("Pulsado"); if (verifi != 0) { if (ke.getKeyCode() == KeyEvent.VK_SPACE) { switch (verificador) { case 1: // COMIENZA SOLVE t_atras.stop(); t.start(); actualizarLabel(); verificador = 2; break; case 0: // CONTEO ATRAS t_atras.start(); actualizarLabel_atras(); verificador = 1; break; case 2: // DETENER SOLVE t.stop(); segundos_atras = aux; minutos = 0.00; if (m > 0) { minutos = 60 * (double) m; } cent_seg = (double) cs / 100; tiempo = (double) s + cent_seg + minutos; String tiempo_str = (m <= 9 ? "0" : "") + m + ":" + (s <= 9 ? "0" : "") + s + "." + (cs <= 9 ? "0" : "") + cs; JLabel nuevo_tiempo = new JLabel(tiempo_str); nuevo_tiempo.setFont(new java.awt.Font("Lucida Sans", 0, 25)); nuevo_tiempo.setForeground(Color.yellow); JButton eliminar = new JButton("Eliminar Tiempo"); eliminar.setFocusable(false); JButton Penalizacion = new JButton("Penalizacion +2"); Penalizacion.setFocusable(false); JButton DNF = new JButton("DNF"); DNF.setFocusable(false); if (tipoCubScramble == 0) { Scramble_parametro = Scramble; } else { Scramble_parametro = Scramble4x4; } JLabel nuevo_Scramble = new JLabel(Scramble_parametro); nuevo_Scramble.setFont(new java.awt.Font("Lucida Sans", 0, 15)); nuevo_Scramble.setForeground(Color.white); panel.add(nuevo_tiempo); panel.add(nuevo_Scramble); panel.add(eliminar); panel.add(Penalizacion); panel.add(DNF); panel.updateUI(); listaT.insertarCabezaLista(tiempo, tiempo_str, Scramble_parametro); //lista todos los solves lista5mej.insertarNUMmejores(5, lista5mej, tiempo, nuevo_tiempo, tiempo_str, Scramble_parametro); //lista 5 mejores lista10mej.insertarNUMmejores(10, lista10mej, tiempo, nuevo_tiempo, tiempo_str, Scramble_parametro); // lista 10 mejores actualizarGrafica(); funcionalidad_botones(nuevo_tiempo, nuevo_Scramble, eliminar, Penalizacion, DNF); System.out.println("\tLista Generada 3x3"); listaT3x3.visualizar(); System.out.println("\tLista Generada 4x4"); listaT4x4.visualizar(); System.out.println("\tLista Generada 2x2"); listaT2x2.visualizar(); System.out.println("\tLista 5 mejores"); lista5mej.visualizar(); System.out.println("\tLista 10 mejores"); lista10mej.visualizar(); actualizar_estad(); verificador = 0; m = 0; s = 0; cs = 0; //actualizarLabel(); if (tipoCubScramble == 0) { actualizarScramble(); } else { actualizarScramble4x4(); } actualizar_estad(); actualizarGrafica(); verificador = 0; break; default: break; } } } else { JOptionPane.showMessageDialog(null, "Primero se tiene que escoger una categoria de cubo", "Escoger una Categoria", JOptionPane.INFORMATION_MESSAGE); } } @Override public void keyReleased(KeyEvent ke) { } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel AVG10; private javax.swing.JLabel AVG5; private javax.swing.JMenuItem Limpiar2x2; private javax.swing.JMenuItem Limpiar3x3; private javax.swing.JMenuItem Limpiar4x4; private javax.swing.JLabel Mej_Tiempo; private javax.swing.JMenu Menu1; private javax.swing.JLabel NumSolves; private javax.swing.JLabel Peor_Tiempo; private javax.swing.JLabel Prom; private javax.swing.JComboBox<String> Selecc_cuentraAtras; private javax.swing.JComboBox<String> Selecc_tipoCubo; private javax.swing.JLabel Tiempo; private javax.swing.JLabel Tiempo_Espera; private javax.swing.JMenuItem aydaScramble; private javax.swing.JMenu ayudaScramble; private javax.swing.JMenuItem cargarArchivo; private javax.swing.JLabel elegir_cat; private javax.swing.JMenuItem guardar2x2; private javax.swing.JMenuItem guardar3x3; private javax.swing.JMenuItem guardar4x4; private javax.swing.JMenuItem guardarCargar2x2; private javax.swing.JMenuItem guardarCargar3x3; private javax.swing.JMenuItem guardarCargar4x4; private javax.swing.JLabel infor; private javax.swing.JLabel jLabel1; private javax.swing.JMenu jMenu1; private javax.swing.JMenu jMenu2; private javax.swing.JMenu jMenu3; private javax.swing.JMenu jMenu4; private javax.swing.JMenu jMenu5; private javax.swing.JMenuBar jMenuBar1; private javax.swing.JMenuItem jMenuItem1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JLabel labelImagen; private javax.swing.JLabel labelScramble; private javax.swing.JMenuItem limpiarTodo; private javax.swing.JLabel logo; private javax.swing.JLabel manoder; private javax.swing.JLabel manoizq; private javax.swing.JLabel mejores10list; private javax.swing.JLabel mejores5list; private javax.swing.JPanel panel; private javax.swing.JPanel panel2x2; private javax.swing.JPanel panel3x3; private javax.swing.JPanel panel4x4; private javax.swing.JPanel panelGrafica; private javax.swing.JLabel titulo; private javax.swing.JMenuItem videoBasico; private javax.swing.JMenuItem videoFridrich; private javax.swing.JMenuItem videoFridrichRED; // End of variables declaration//GEN-END:variables }