java - JPasswordBox 字段太大。我怎样才能让它变小?

标签 java swing layout jpasswordfield

我对编写 Java 完全陌生。我正在创建一个界面,收集该区域所有互联网连接的列表。用户选择其中之一,输入密码,然后该人可以连接到该密码。我的密码字段有问题...对于密码框来说太大了。

enter image description here

我该如何解决这个问题?这是代码。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Network_Interface
{
    JFrame frame;
    JPanel panel;

    public static void main (String[] args)
    {
        Network_Interface OBJECT_GUI = new Network_Interface();
        OBJECT_GUI.INIT();
    }

    public void INIT()
    {
        //frame and panel
        JFrame FRAME = new JFrame();
        JPanel PANEL = new JPanel();
        //init fields and labels
        JButton BUTTON_REFRESH = new JButton("Refesh List");
        JButton BUTTON_CONNECT = new JButton("Connect to network");
        JPasswordField  FIELD_PASSWORD = new JPasswordField(15);
        JLabel LABEL_PASSWORD = new JLabel("Enter Password of selected newtork.");
        JList LIST_NETWORKS = new JList(GET_NETWORKS());
        //event listeners
        BUTTON_REFRESH.addActionListener(new REFRESH_LISTENER());
        BUTTON_CONNECT.addActionListener(new CONNECT_LISTENER());
        //panel handling
        PANEL.setLayout(new BoxLayout(PANEL, BoxLayout.Y_AXIS));
        PANEL.add(LIST_NETWORKS);
        PANEL.add(BUTTON_REFRESH);
        PANEL.add(LABEL_PASSWORD);
        PANEL.add(FIELD_PASSWORD);
        PANEL.add(BUTTON_CONNECT);
        FRAME.getContentPane().add(BorderLayout.CENTER, PANEL);
        FRAME.setSize(500,500);
        FRAME.setVisible(true);
    }
    public String[] GET_NETWORKS()
    {
        //read file
        String[] ARRAY_NETWORKS= new String[2];
        ARRAY_NETWORKS[0] = "Frnkthtnk100";
        ARRAY_NETWORKS[1] = "CheesecakeFactory";
        return ARRAY_NETWORKS;
    }
    class REFRESH_LISTENER implements ActionListener
    {
        public void actionPerformed(ActionEvent EVENT)
        {
            //idk to do at this point
        }
    }
    class CONNECT_LISTENER implements ActionListener
    {
        public void actionPerformed(ActionEvent EVENT)
        {
            //IDk at this point
        }
    }
}

最佳答案

1) 简单方法:将 FRAME.setSize(500,500); 替换为 FRAME.pack();。 它将调整框架以适应组件的尺寸。 但它会改变框架的大小。

2)如果您想保持框架大小,可以指定 JPasswordField FIELD_PASSWORD 的最大大小,这样它就不会在 JPanel 中扩展到最大值。

JPasswordField FIELD_PASSWORD = new JPasswordField(15);
FIELD_PASSWORD.setMaximumSize(new Dimension(FIELD_PASSWORD.getMaximumSize().width, FIELD_PASSWORD.getMinimumSize().height));

关于java - JPasswordBox 字段太大。我怎样才能让它变小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42193007/

相关文章:

java - 如何获取当前的屏幕方向?

java - JEdi​​torPane 和系统字体中的自动换行

wpf - 如何使工具栏中的项目填充 WPF 中的所有可用空间

android - 在右下角定位 float 操作按钮

java - 我如何根据 protected String doInBackground 方法中 AsyncTask 的结果调用 Toast.makeText()?

java - 即使可执行文件在 Windows 上失败,Maven exec 插件也会构建成功

java - 如何将 newItem 设置为 JOptionPane?

java - 如何将 ImageIcon 添加到 JLabel

java - 双击 TitledBorder 即可编辑

java - 如何在其他 JTextField 下找到 JTextField?