所以我想在不使用Gridlayout的情况下整理我的按钮和图像,因为它看起来很糟糕。
这就是我目前所拥有的:
这就是我想要的样子:
以下是面板的代码,任何想法?:
package hi.low;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Card_panel extends JPanel implements ActionListener
{
private final int WIDTH = 400, HEIGHT = 200;
private static String[] imageList = {
"images/ac.png"
};
private static int imageNum = -1;
JButton higher;
JButton lower;
public Card_panel()
{
setPreferredSize(new Dimension(WIDTH, HEIGHT));
setBackground (Color.green.darker().darker());
ImageIcon image = new ImageIcon(imageList[0]);
JLabel label = new JLabel("", image, JLabel.CENTER);
add( label, BorderLayout.CENTER );
JButton higher = new JButton("Higher");
higher.setActionCommand("higher");
higher.addActionListener (this);
add( higher, BorderLayout.SOUTH );
JButton lower = new JButton("Lower");
lower.setActionCommand("lower");
lower.addActionListener (this);
add( lower, BorderLayout.SOUTH );
}
@Override
public void actionPerformed(ActionEvent e)
{
String Action;
Action = e.getActionCommand ();
if (Action.equals ("higher"))
{
System.out.println("User chose higher!");
}
if (Action.equals ("lower"))
{
System.out.println("User chose lower!");
}
}
}
谢谢!
答案 0 :(得分:1)
JPanel
默认使用FlowLayout
,因为我看不到任何证据表明您正在更改它,我会假设您的面板正在使用的布局...
相反,您可以使用GridBagLayout
...
public Card_panel()
{
setPreferredSize(new Dimension(WIDTH, HEIGHT));
setBackground (Color.green.darker().darker());
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = 2;
ImageIcon image = new ImageIcon(imageList[0]);
JLabel label = new JLabel("", image, JLabel.CENTER);
add( label, gbc );
gbc.gridx = 0;
gbc.gridy++;
gbc.gridwidth = 1;
JButton higher = new JButton("Higher");
higher.setActionCommand("higher");
higher.addActionListener (this);
add( higher, gbc );
gbc.gridx++;
JButton lower = new JButton("Lower");
lower.setActionCommand("lower");
lower.addActionListener (this);
add( lower, gbc );
}
您还可以使用复合布局,将按钮放在自己的面板中,使用自己的布局,然后使用不同的布局布局标签和按钮窗格