我正在写一个摇摆程序。但问题是我想要的 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);
}
}
请帮忙