在Java Swing中设置较小的按钮大小

在Java Swing中设置较小的按钮大小,java,swing,size,jbutton,Java,Swing,Size,Jbutton,我试图在JavaSwing中实现GUI;但是我被扣子的尺寸卡住了,我正试着把它变小。我曾尝试使用setSize、setpreferedsize和setmaximumSize,但没有任何效果。有什么想法吗 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import java.awt.event.ActionE

我试图在JavaSwing中实现GUI;但是我被扣子的尺寸卡住了,我正试着把它变小。我曾尝试使用
setSize
setpreferedsize
setmaximumSize
,但没有任何效果。有什么想法吗

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) {
    }
}
import java.awt.*;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.JFrame;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.ArrayList;
导入java.util.HashMap;
导入javax.swing.JButton;
导入javax.swing.JScrollPane;
导入javax.swing.JTextField;
导入javax.swing.*;
导入javax.swing.border.border;
公共类WorkStationGUI扩展JFrame实现ActionListener{
JButton Worker1进程1;
JButton Worker1进程2;
按钮停止工作;
//JScrollPane滚动列表;
JTextArea订单列表;
JTextArea产品列表;
JTextField命令;
JTextField产品;
JTextfieldworker1;
JTextfieldworker2;
私有HashMap OrdersList;
私有HashMap产品列表;
公共WorkStationGUI(HashMap订单、HashMap产品){
this.OrdersList=订单;
this.ProductsList=产品;
setTitle(“工作站”);
设置东和西();
setupSouthPanel();
包装();
setVisible(真);
}
专用JLabel createOneLabel(字符串s,颜色c){
Font f=新字体(Font.SANS_SERIF,Font.BOLD,18);
JLabel标签=新的JLabel(s,JLabel.CENTER);
label.setFont(f);
标签.立根点(c);
label.set不透明(true);
退货标签;
}
东西方的私人空间(){
//搜索面板包含标签、文本字段和按钮
JPanel面板=新的JPanel();
Worker1Process1=新的JButton(“Worker 1”);
Worker1进程1.设置PreferredSize(新维度(10,10));
面板。添加(Worker1进程1);
Worker1=新的JTextField(20);
Worker1进程1.设置PreferredSize(新尺寸(90,90));
Worker1.setFont(新字体(Font.MONOSPACED,Font.PLAIN,14));
Worker1.setEditable(假);
Panel.setLayout(新网格布局(2,1));
面板。添加(工作1);
JPanel Panel2=新的JPanel();
Worker1Process2=新的JButton(“Worker 2”);
面板2.添加(工人1流程2);
Worker2=新的JTextField(20);
Worker2.setFont(新字体(Font.MONOSPACED,Font.PLAIN,14));
Worker2.setEditable(假);
面板2.设置布局(新网格布局(2,1));
小组2.添加(工作人员2);
Panel.setLayout(新网格布局(2,2));
此.add(面板,BorderLayout.EAST);
添加(面板2,BorderLayout.WEST);
//添加(面板2,BorderLayout.SOUTH);
}
专用面板(){
JPanel面板=新的JPanel();
订单=新的JTextField(1);
订单。背景(颜色。浅灰色);
面板。添加(订单);
JPanel Panel2=新的JPanel();
产品=新的JTextField(1);
面板。添加(产品);
产品.立根(颜色.浅灰色);
Panel.setLayout(新网格布局(2,2));
添加(面板、边框布局、中心);
添加(面板2,BorderLayout.SOUTH);
}
已执行的公共无效操作(操作事件e){
}
}

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

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