robeeeert

Untitled

May 30th, 2024
662
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.63 KB | None | 0 0
  1. import javax.swing.*;
  2. import javax.swing.table.AbstractTableModel;
  3. import javax.swing.table.TableModel;
  4. import java.awt.*;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. public class InterfazGrafica extends JFrame {
  9.     private JTabbedPane tabbedPane;  // Contenedor de pestaΓ±as
  10.     private JTextField barraParaFormulas;
  11.     private JMenuBar menu;
  12.     private JMenu menuArchivo, menuInformacion;
  13.     private JMenuItem botonNuevaHoja, botonTablaHash, botonGuardar, botonAbrir, botonInformacion;
  14.  
  15.     public InterfazGrafica() {
  16.         setTitle("Hoja De CΓ‘lculo");
  17.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  18.         setSize(800, 600);
  19.        
  20.         tabbedPane = new JTabbedPane();
  21.         add(tabbedPane, BorderLayout.CENTER);
  22.  
  23.         barraParaFormulas = new JTextField();
  24.         add(barraParaFormulas, BorderLayout.NORTH);
  25.        
  26.         crearNuevaHoja();
  27.  
  28.         menu = new JMenuBar();
  29.        
  30.         menuArchivo = new JMenu("Archivo");
  31.         botonNuevaHoja = new JMenuItem("Nueva Hoja");
  32.         botonNuevaHoja.addActionListener(new ActionListener() {
  33.             @Override
  34.             public void actionPerformed(ActionEvent e) {
  35.                 crearNuevaHoja();
  36.             }
  37.         });
  38.  
  39.         botonTablaHash = new JMenuItem("Tabla Hash");
  40.         botonGuardar = new JMenuItem("Guardar");
  41.         botonAbrir = new JMenuItem("Abrir");
  42.         menuArchivo.add(botonNuevaHoja);
  43.         menuArchivo.add(botonTablaHash);
  44.         menuArchivo.add(botonGuardar);
  45.         menuArchivo.add(botonAbrir);
  46.         menu.add(menuArchivo);
  47.  
  48.         menuInformacion = new JMenu("Informacion");
  49.         botonInformacion = new JMenuItem("Mostrar InformaciΓ³n");
  50.         menuInformacion.add(botonInformacion);
  51.         menu.add(menuInformacion);
  52.  
  53.         setJMenuBar(menu);
  54.        
  55.         setVisible(true);
  56.     }
  57.  
  58.     private void crearNuevaHoja() {
  59.         JPanel panelHoja = new JPanel(new BorderLayout());
  60.         JTable tabla = new JTable(100, 26);
  61.         tabla.setCellSelectionEnabled(true);
  62.         tabla.putClientProperty("Edicion terminada", Boolean.TRUE);
  63.  
  64.         TableModel modeloTablaFilas = new AbstractTableModel() {
  65.             @Override
  66.             public int getRowCount() {
  67.                 return 100;
  68.             }
  69.  
  70.             @Override
  71.             public int getColumnCount() {
  72.                 return 1;
  73.             }
  74.  
  75.             @Override
  76.             public Object getValueAt(int rowIndex, int columnIndex) {
  77.                 return rowIndex + 1;
  78.             }
  79.         };
  80.  
  81.         JTable encabezamientoFilas = new JTable(modeloTablaFilas);
  82.         encabezamientoFilas.setPreferredScrollableViewportSize(new Dimension(30, 0));
  83.         encabezamientoFilas.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
  84.         encabezamientoFilas.getColumnModel().getColumn(0).setPreferredWidth(30);
  85.         encabezamientoFilas.setRowHeight(tabla.getRowHeight());
  86.         encabezamientoFilas.setFocusable(false);
  87.         encabezamientoFilas.setRowSelectionAllowed(false);
  88.  
  89.         JScrollPane rowHeaderScrollPane = new JScrollPane(encabezamientoFilas);
  90.         rowHeaderScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
  91.  
  92.         panelHoja.add(rowHeaderScrollPane, BorderLayout.WEST);
  93.         panelHoja.add(new JScrollPane(tabla), BorderLayout.CENTER);
  94.  
  95.         tabbedPane.addTab("Hoja " + (tabbedPane.getTabCount() + 1), panelHoja);
  96.     }
  97.  
  98.     public JTextField getFormulaField() {
  99.         return barraParaFormulas;
  100.     }
  101.  
  102.     public JMenuItem getNuevaHojaItem() {
  103.         return botonNuevaHoja;
  104.     }
  105.  
  106.     public JMenuItem getTablaHashItem() {
  107.         return botonTablaHash;
  108.     }
  109.  
  110.     public JMenuItem getGuardarItem() {
  111.         return botonGuardar;
  112.     }
  113.  
  114.     public JMenuItem getCargarItem() {
  115.         return botonAbrir;
  116.     }
  117.  
  118.     public JMenuItem getInfoItem() {
  119.         return botonInformacion;
  120.     }
  121.  
  122.     public JTable getTable() {
  123.         JPanel panelHoja = (JPanel) tabbedPane.getSelectedComponent();
  124.         JScrollPane scrollPane = (JScrollPane) panelHoja.getComponent(1);
  125.         return (JTable) scrollPane.getViewport().getView();
  126.     }
  127.  
  128.     public void actualizarTabla(HojaDeCalculo modelo) {
  129.         JTable tabla = getTable();
  130.         for (int i = 0; i < tabla.getRowCount(); i++) {
  131.             for (int j = 0; j < tabla.getColumnCount(); j++) {
  132.                 Object valor = modelo.getValor(i, j);
  133.                 if (valor != null) {
  134.                     tabla.setValueAt(valor.toString(), i, j);
  135.                 } else {
  136.                     tabla.setValueAt("", i, j);
  137.                 }
  138.             }
  139.         }
  140.     }
  141. }
Advertisement
Add Comment
Please, Sign In to add comment