gpt4 book ai didi

java - JButton 小按钮

转载 作者:行者123 更新时间:2023-11-30 07:22:29 25 4
gpt4 key购买 nike

我正在编写一个 swing 程序。但问题是我想要的 JButton 很小。它的高度和宽度应该由我来决定,但下面的代码创建了一个长的水平按钮。

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

public class SwingExample
{
//Create the GUI and show it. For thread safety, this method should be
//invoked from the event-dispatching thread

private static void createAndShowGUI()
{
//create and setup the window
JFrame frame=new JFrame("Swing Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Set the size of the window
frame.setPreferredSize(new Dimension(300,300));


//Centre the window on the screen
WinUtilities wu=new WinUtilities();
wu.centerWindow(frame);

//Create a panel
JPanel panel=new JPanel(new BorderLayout());

//Create three buttons

//Button1
JButton But1=new JButton("Add");
But1.setText("Add Data");
But1.setSize(new Dimension(10,20)); //Using it has no effect
But1.setMnemonic('A');
But1.setMargin(new Insets(12,7,20,10)); //Using it has no effect
But1.setBorder(null); //Using it has no effect
panel.add(But1,BorderLayout.WEST);

//Button2
JButton But2=new JButton("Edit");
But2.setText("Edit Data");
But2.setMnemonic(KeyEvent.VK_E);
But2.setPreferredSize(new Dimension(5,5));

panel.add(But2,BorderLayout.CENTER);

//Button3
JButton But3=new JButton("Display");
But3.setText("Display Data");
But3.setMnemonic(KeyEvent.VK_D);
But3.setPreferredSize(new Dimension(5,5));
panel.add(But3,BorderLayout.EAST);


//Set window characteristics
frame.setContentPane(panel);
//frame.add(panel);
frame.pack();



//Display the window
frame.setVisible(true);
}

public static void main(String args[])
{
//Schedule a job for the event dispatching thread

//creating and showing this application's GUI
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});

}
}

class WinUtilities
{
public void centerWindow(JFrame frm)
{
frm.setLocationRelativeTo(null);
}
}

请帮忙

最佳答案

例如

enter image description here

建议

  • JPanel 已在 API FlowLayout 中实现(完全接受 PreferredSize),

  • 那么BoderLayout可能是错误的LayoutManager,

  • 或使用 GridLayout(然后所有 JButtons 将具有相同的大小,基于最大的 Item)

代码

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

public class SwingExample {

private static void createAndShowGUI() {
JFrame frame = new JFrame("Swing Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
JButton but1 = new JButton("Add");
but1.setText("Add Data");
but1.setMnemonic('A');
but1.setBorderPainted(false);
but1.setBackground(Color.red);
but1.setBorder(null);
but1.setFocusable(false);
but1.setMargin(new Insets(0, 0, 0, 0));
//but1.setContentAreaFilled(false);
panel.add(but1);
JButton but2 = new JButton("Edit");
but2.setText("Edit Data");
but2.setMnemonic(KeyEvent.VK_E);
panel.add(but2);
JButton but3 = new JButton("Display");
but3.setText("Display Data");
but3.setMnemonic(KeyEvent.VK_D);
panel.add(but3);
frame.add(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

public static void main(String args[]) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {

public void run() {
createAndShowGUI();
}
});
}
}

关于java - JButton 小按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12670969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com