Tengo 2 problema que tengo que pedir, 1 de cómo obtener el desplazamiento horizontal para mi JTable, actualmente es reducir todas las columnas que no es legible en todo. Tengo 20 columnas a mostrar en una Tabla.

2º, cómo ajustar la altura de la mesa ancho máximo para mi el tamaño de la pantalla.

mi código actual es

Container cp = getContentPane();

            ConnectionDB con = new ConnectionDB();
            tableModel = con.getRecord(DEFAULT_QUERY);

    table = new JTable(tableModel);
    table.setPreferredScrollableViewportSize(new Dimension(900, 500));

    table.setFont(new Font("Tahoma", Font.PLAIN, 12));
    scrollPane = new JScrollPane(table);

    centerPanel.add(scrollPane, BorderLayout.CENTER);
    centerPanel.setBorder(BorderFactory.createTitledBorder("Books:"));
    cp.add("Center", centerPanel);

Amablemente me ayude, Gracias de Antemano.

  • Para el desplazamiento horizontal, el uso de JScrollPane
  • este es JScrollPane. cómo conseguir scoll?
  • Para una mejor ayuda antes, publicar un SSCCE.
  • ¿Qué significa para ti el tamaño máximo? Si usted agregue su ScrollPanel para el centro de la BorderLayout debe cambiar automáticamente el tamaño y el tamaño máximo de un JFrame normalmente es el tamaño de la pantalla.
  • Voy a añadir JDesktopPane en mi Contenedor centro y JDesktopPane es llegar objeto de otra clase en la tabla de configuración en JScrollPane y es la configuración en otro Recipiente.
InformationsquelleAutor Shahjahan KK | 2013-05-03

3 Comentarios

  1. 10

    Para evitar que todas las columnas son de tamaño para que la ScrollPane tamaño puede deshabilitar el cambio de tamaño automático:

    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

    La adición de su ScrollPane para el centro de la BorderLayout debe establecer el tamaño máximo para el tamaño de la pantalla, porque normalmente el JFrame no puede ser más grande.

    Para establecer el tamaño de la ScrollPanes de la Ventanilla para el tamaño de la pantalla puede utilizar el awt Toolkit.

    table.setPreferredScrollableViewportSize(Toolkit.getDefaultToolkit().getScreenSize());
    • Sí, me desplazamiento horizontal, pero ¿cómo lograr el máximo tamaño para el tamaño de pantalla para mi ScrollPane?
    • Lo sentimos, todavía no lo es exactamente. Si el componente ScrollPane estar siempre en su máximo tamaño o es normalmente más pequeño y el máximo es de sólo el máximo tamaño posible? ¿Cómo es ahora y cómo debería ser? Puede agregar una captura de pantalla o un bosquejo del estado actual y describir cómo debe ser?
    • cuando me puse dimensiones de la tabla como esta la tabla».setPreferredScrollableViewportSize(nueva Dimensión(500, 500));» se extiende el tamaño de acuerdo a las dimensiones, pero quiero que sea lo máximo a mi el tamaño de la pantalla, para hacer poco más claro, mi mesa es en JScrollPane y JScrollPane es en un contenedor que está recibiendo el contentpane.
    • he resuelto mi problema con este código «kit de herramientas kit de herramientas = Toolkit.getDefaultToolkit (); Dimensión dim = toolkit.getScreenSize(); tabla.setPreferredScrollableViewportSize(nueva Dimensión(dim.ancho,dim.altura));»
    • Ah bueno, ahora ya veo lo que quería. Voy a añadir la solución a mi respuesta por lo que es sencilla de encontrar. (Sólo puede establecer dim a su tamaño de la ventana. Usted no tiene que recuperar la Dimensión y, a continuación, crear una nueva Dimensión con sus valores, sólo tiene que utilizar la primera :D)
    • Muchas gracias por su ayuda. 🙂
    • Gracias, me salvó el día!

  2. 1

    Agregar su JTable dentro de JScrollPane y set de barras de desplazamiento.

    new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

    Ejemplo de código para JTable para que se ajuste el tamaño de la pantalla

    public class TestJTableFitsScreenWidth {
    
        public static void main(String... args) {
            SwingUtilities.invokeLater(new Runnable() {
    
                public void run() {
                    JFrame f = new JFrame();
                    DefaultTableModel dtm = new DefaultTableModel(
                            new String[][]{
                                new String[] {"A", "B", "D"},
                                new String[] {"D", "E", "F"}
                            },
                            new String[] {"col1", "col2", "col3"});
                    JTable table = new JTable(dtm);
                    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                    f.getContentPane().setLayout(new BorderLayout());
                    f.getContentPane().add(table, BorderLayout.CENTER);
                    f.setVisible(true);
                    f.pack();
                }
            });
        }
    }
    • no su trabajo, he modificado mi 4º última línea con la suya, ¿qué estoy haciendo mal?
    • table.setHorizontalScrollEnabled(true); probar este
    • no de trabajo. debo publicar mi código completo?
  3. 0

    Esto puede ayudar a usted.

            Dimension d = new Dimension(900, 800);
            tbl_transaction.setAutoResizeMode(tbl_transaction.AUTO_RESIZE_OFF);
            tbl_transaction.setPreferredSize(d);
            tbl_transaction.setPreferredScrollableViewportSize(d);

Dejar respuesta

Please enter your comment!
Please enter your name here