【问题标题】:Set button size smaller in Java Swing在 Java Swing 中设置较小的按钮大小
【发布时间】:2012-03-01 00:55:15
【问题描述】:

我正在尝试在 Java Swing 中实现 GUI;但我被困在按钮大小上,我正试图让它变小。我曾尝试使用setSizesetPrefferedSizesetmaximumSize,但没有任何效果。有什么想法吗?

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.*;
import javax.swing.border.Border;

public class WorkStationGUI extends JFrame implements ActionListener {

    JButton Worker1Process1;
    JButton Worker1Process2;
    JButton StopWorking;
    //   JScrollPane scrollList;
    JTextArea OrderList;
    JTextArea ProductList;
    JTextField orders;
    JTextField products;
    JTextField Worker1;
    JTextField Worker2;
    private HashMap<String, Order> OrdersList;
    private HashMap<String, Product> ProductsList;

    public WorkStationGUI(HashMap<String, Order> orders, HashMap<String, Product> Products) {
        this.OrdersList = orders;
        this.ProductsList = Products;
        setTitle("Work Station");
        setupEastandWest();
        setupSouthPanel();
        pack();
        setVisible(true);
    }

    private JLabel createOneLabel(String s, Color c) {
        Font f = new Font(Font.SANS_SERIF, Font.BOLD, 18);
        JLabel label = new JLabel(s, JLabel.CENTER);
        label.setFont(f);
        label.setBackground(c);
        label.setOpaque(true);
        return label;
    }

    private void setupEastandWest() {

        // search panel contains label, text field and button
        JPanel Panel = new JPanel();
        Worker1Process1 = new JButton("Worker 1");

        Worker1Process1.setPreferredSize(new Dimension(10, 10));

        Panel.add(Worker1Process1);
        Worker1 = new JTextField(20);
        Worker1Process1.setPreferredSize(new Dimension(90, 90));
        Worker1.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 14));
        Worker1.setEditable(false);
        Panel.setLayout(new GridLayout(2, 1));
        Panel.add(Worker1);
        JPanel Panel2 = new JPanel();
        Worker1Process2 = new JButton("Worker 2");
        Panel2.add(Worker1Process2);
        Worker2 = new JTextField(20);
        Worker2.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 14));
        Worker2.setEditable(false);
        Panel2.setLayout(new GridLayout(2, 1));
        Panel2.add(Worker2);            

        Panel.setLayout(new GridLayout(2, 2));
        this.add(Panel, BorderLayout.EAST);
        this.add(Panel2, BorderLayout.WEST);
        // this.add(Panel2, BorderLayout.SOUTH);
    }

    private void setupSouthPanel() {
        JPanel Panel = new JPanel();

        orders = new JTextField(1);
        orders.setBackground(Color.LIGHT_GRAY);
        Panel.add(orders);
        JPanel Panel2 = new JPanel();
        products = new JTextField(1);
        Panel.add(products);
        products.setBackground(Color.LIGHT_GRAY);
        Panel.setLayout(new GridLayout(2, 2));
        this.add(Panel, BorderLayout.CENTER);
        this.add(Panel2, BorderLayout.SOUTH);
    }

    public void actionPerformed(ActionEvent e) {
    }
}

【问题讨论】:

    标签: java swing size jbutton


    【解决方案1】:

    您正在使用 GridLayout,这将导致组件相对于网格占用所有容器空间。这并不是按钮的最佳选择。您可以尝试改用 FlowLayout 或 GridBagLayout。

    另外,您在面板上设置 JButton 之后设置布局管理器。

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 2011-12-06
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多