有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用designgridlayout在两类数据之间的页面中插入垂直JSeperator?

例如,我想在一个页面的两个类别中插入数据

USER         |             PASSWORDS

user1        |             ******

user2        |             *******

user3        |             *********

我插入了管道符号来表示垂直分隔符。垂直分离器应该是连续的。请帮忙

DesignGridLayout layout= new DesignGridLayout(Panel);

JSeparator sep = new JSeparator(JSeparator.VERTICAL);

layout.row().grid(userlabel).add(passwordlabel);

共 (1) 个答案

  1. # 1 楼答案

    你可以这样做

    import java.awt.GridLayout;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JSeparator;
    
    
    public class PanelAdd extends JFrame {
    
        JPanel panelLabels, panelPasswords  ;
    
        JLabel [] userLabels ;
        JPasswordField [] passwordFields;
    
        public PanelAdd() {
    
            panelLabels = new JPanel();
            panelPasswords = new JPanel();  
    
            GridLayout panelsLayout = new GridLayout(0, 1, 0, 5);
            GridLayout mainLayout = new GridLayout(1, 2);
    
            panelLabels.setLayout(panelsLayout);
            panelPasswords.setLayout(panelsLayout);
    
            setLayout(mainLayout);
    
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    
            setSize(350, 150);
        }
    
        public static void main(String [] args) {
    
            PanelAdd add = new PanelAdd();
            add.addControls();
            add.setVisible(true);
    
        }
    
        private void addControls() {
    
            userLabels = new JLabel[3];
            passwordFields = new JPasswordField[3];
    
            panelLabels.add(new JLabel("Users"));
            panelPasswords.add(new JLabel("Passwords"));
    
            for ( int i = 0 ; i < 3 ; i++) {
                userLabels[i] = new JLabel("User "+i);
                passwordFields[i] = new JPasswordField();
    
                panelLabels.add(userLabels[i]);
                panelPasswords.add(passwordFields[i]);
            }
    
            add(panelLabels);
            JSeparator sep = new JSeparator(JSeparator.VERTICAL);
            add(sep);
            add(panelPasswords);
    
        }
    
    }
    

    通过GridLayout对象,可以在中指定矩形网格 放置组件的位置。网格中的每个单元格都是相同的 高度与其他单元格相同,每个宽度与 其他细胞。组件可以垂直和水平拉伸 填满牢房