如果表格位于 JPanel 中,如何将其移至左侧?

0 java swing jpanel layout-manager

JPanel我正在尝试将桌子移到也在窗口内的桌子的左侧

\n

我得到的是这样的:\n我的工作

\n

我想要的是这样的:

\n

我想要的是

\n

我尝试使用.setBounds方法但它不起作用。有人知道该怎么办吗?

\n

这是我的代码:

\n
package Modulos;\nimport paneles.*;\nimport javax.swing.*;\n\npublic class ModuloAdmin extends JFrame {\n\n    public ModuloAdmin(){\n        //Crear tabla\n        String[][] datosprueba = {\n                {"001","Carlitos", "Casa","51202011"},\n                {"001","Carlitos", "Casa","51202011"}\n        };\n\n        String[] TituloColumna = {"C\xc3\xb3digo", "Nombre", "Direcci\xc3\xb3n", "Tel\xc3\xa9fono"};\n        JTable TablaSucursales = new JTable(datosprueba,TituloColumna);\n\n        //Contenido de las pesta\xc3\xb1as\n        JPanel PanelSucursales = new JPanel();\n\n        PanelSucursales.add(TablaSucursales);\n        PanelSucursales.add(new JScrollPane(TablaSucursales));\n        JPanel PanelProductos = new JPanel();\n        PanelProductos.add(new JLabel("Panel productos"));\n        JPanel PanelClientes = new JPanel();\n        PanelClientes.add(new JLabel("Panel Clientes"));\n        JPanel PanelVendedores = new JPanel();\n        PanelVendedores.add(new JLabel("Panel Vendedores"));\n\n        //CREACION DE PESTA\xc3\x91AS\n        JTabbedPane Pestanias = new JTabbedPane();\n        Pestanias.setBounds(20,80,700,700);\n        Pestanias.add("Sucursales",PanelSucursales);\n        Pestanias.add("Productos",PanelProductos);\n        Pestanias.add("Clientes", PanelClientes);\n        Pestanias.add("Vendedores",PanelVendedores);\n\n        //vENTANA MODULO DE ADMIN\n        JFrame VentanaModuloAdmin = new JFrame();\n        VentanaModuloAdmin.add(Pestanias);\n        VentanaModuloAdmin.setLayout(null);\n        VentanaModuloAdmin.setSize(800,850);\n        VentanaModuloAdmin.setLocationRelativeTo(null);\n        VentanaModuloAdmin.setTitle("M\xc3\xb3dulo de administrador");\n        VentanaModuloAdmin.setVisible(true);\n        VentanaModuloAdmin.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Mad*_*mer 6

使用适当的布局管理器和容器管理

使用适当的布局管理器

import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;

public class Test {

    public static void main(String[] args) {
        new Test();
    }

    public Test() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame();
                frame.add(new TestPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        private JTable table;

        public TestPane() {
            setBorder(new EmptyBorder(16, 16, 16, 16));
            setLayout(new GridLayout(0, 2));
            add(new JScrollPane(table));
            add(createButtonPane());
        }

        protected JPanel createButtonPane() {
            JPanel panel = new JPanel(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.ipadx = 16;
            gbc.ipady = 16;
            gbc.fill = gbc.HORIZONTAL;
            gbc.gridx = 0;
            gbc.gridy = 0;

            panel.add(new JButton("Clear"), gbc);
            gbc.gridx = 1;
            panel.add(new JButton("Carga Masiva"), gbc);

            gbc.gridy++;
            gbc.gridx = 0;
            panel.add(new JButton("Actualizar"), gbc);
            gbc.gridx = 1;
            panel.add(new JButton("Eliminar"), gbc);

            gbc.gridy++;
            gbc.gridx = 0;
            gbc.gridwidth = 2;
            gbc.anchor = GridBagConstraints.NORTH;
            gbc.weighty = 1;
            panel.add(new JButton("Exportar Listado a PDF"), gbc);

            return panel;
        }


    }

}
Run Code Online (Sandbox Code Playgroud)

说实话,布局管理器解决了 UI 开发人员面临的最困难的问题之一 - 输出的可变性质(屏幕分辨率、字体规格、辅助功能修饰符,以及改变布局计算方式的一大堆不同的东西)。

它们可能看起来很难开始,但是一旦您习惯使用它们并学习如何使用上面演示的“复合布局”,它将帮助您更快地制作更好的 UI