2017-02-12 4 views
1

Я Полностью новый для написания Java. Я создаю интерфейс, который собирает список всех интернет-соединений в этой области. Пользователь выбирает один из них, вводит пароль, а затем человек может подключиться к паролю. У меня проблема с полем Пароль ... Это большой размер для окна пароля.Поле JPasswordBox - большое. Как мне уменьшить размер?

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

Используйте другой менеджер компоновки, возможно, 'GridBagLayout', например – MadProgrammer

+1

Вы хотели бы взглянуть на [Java Coding конвенций] (http://www.oracle.com/technetwork/java/codeconvtoc- 136057.html), так как это облегчит людям читать ваш код и читать их. – MadProgrammer

ответ

1

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)); 
+0

Я использовал опцию 1 –

Смежные вопросы