Java GUI按钮ActionListeners

Java GUI按钮ActionListeners,java,eclipse,Java,Eclipse,在我的GUI程序中,我有4组卡片,我想在每个卡片按钮上添加一个动作监听器,这样当它被点击时,它就不可见了。我已经尝试了source.setVisible(),但是它仍然不起作用。我想我的问题是我创建了所有的卡片按钮,但是我不完全确定 import java.awt.GridBagConstraints; import java.awt.Dimension; import java.awt.GridBagLayout; import java.awt.Image;

在我的GUI程序中,我有4组卡片,我想在每个卡片按钮上添加一个动作监听器,这样当它被点击时,它就不可见了。我已经尝试了source.setVisible(),但是它仍然不起作用。我想我的问题是我创建了所有的卡片按钮,但是我不完全确定

    import java.awt.GridBagConstraints;
    import java.awt.Dimension;
    import java.awt.GridBagLayout;
    import java.awt.Image;
    import java.awt.Insets;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.border.Border;
    import javax.swing.BorderFactory;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import java.awt.BorderLayout;
    public class CardGame extends JFrame implements ActionListener {
private JButton Deal;

CardGame(){
    setTitle("A Card Game");
    setSize(2000, 1000);

    final GridBagConstraints layoutSpec = new GridBagConstraints();
    layoutSpec.gridx = 0;
    layoutSpec.gridy = 0;

    final GridBagConstraints dealSpec = new GridBagConstraints();
    layoutSpec.gridx = 4;
    layoutSpec.gridy = 4;

    final GridBagConstraints dealSpecs = new GridBagConstraints();
    layoutSpec.gridx = 7;
    layoutSpec.gridy = 7;


    JPanel cardA = new JPanel();
    cardA.setPreferredSize(new Dimension(100, 100));
    add(cardA, BorderLayout.NORTH);
    for(int i = 0; i < 13; i++) {   //Loop that Creates a Hand of Cards for Hand A
        cardA.add(new JButton("Card A-" + Integer.toString(i+1)), layoutSpec);
    }

    JPanel cardB = new JPanel();
    cardB.setPreferredSize(new Dimension(100, 100));
    add(cardB, BorderLayout.EAST);
    for(int i = 0; i < 13; i++) {   //Loop that Creates a Hand of Cards for Hand B
        cardB.add(new JButton("Card B-" + Integer.toString(i+1)), layoutSpec);
    }

    JPanel cardC = new JPanel();
    cardC.setPreferredSize(new Dimension(100, 100));
    add(cardC, BorderLayout.WEST);
    for(int i = 0; i < 13; i++) {   //Loop that Creates a Hand of Cards for Hand C
        cardC.add(new JButton("Card C-" + Integer.toString(i+1)), layoutSpec);
    }

    JPanel cardD = new JPanel();
    cardD.setPreferredSize(new Dimension(100, 100));
    add(cardD, BorderLayout.SOUTH);
    for(int i = 0; i < 13; i++) {   //Loop that Creates a Hand of Cards for Hand D
        cardD.add(new JButton("Card D-" + Integer.toString(i+1)), layoutSpec);
    }

    JPanel fillCenter = new JPanel();
    fillCenter.setPreferredSize(new Dimension(100, 100));
    add(fillCenter, BorderLayout.CENTER);   //Adds a panel that fills the center of the JFrame
    fillCenter.add(new JButton("Deal"), dealSpec);  //Adds a Deal Button on top of the fillCenter JPanel
    fillCenter.add(new JButton("Reset"), dealSpecs);    //Adds a Reset Button on top of the fillCenter JPanel

}
@Override
   public void actionPerformed(ActionEvent event){
    if(event.getSource() == (Deal)){

    };
    if(event.getSource() == ("Deal"));
    for(int i = 0; i < 13; i++){
        if(event.getSource() == ("Card " + Integer.toString(i+1)));
    }
}


public static void main(String[] args) {
    CardGame cards = new CardGame();
    cards.setVisible(true);
    return;
}
导入java.awt.gridbag约束;
导入java.awt.Dimension;
导入java.awt.GridBagLayout;
导入java.awt.Image;
导入java.awt.Insets;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.border.border;
导入javax.swing.BorderFactory;
导入javax.swing.ImageIcon;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
导入javax.swing.JTextField;
导入java.awt.BorderLayout;
公共类CardGame扩展JFrame实现ActionListener{
私人杰布顿交易;
纸牌游戏(){
片名(“纸牌游戏”);
设置大小(2000、1000);
final GridBagConstraints layoutSpec=新GridBagConstraints();
layoutSpec.gridx=0;
layoutSpec.gridy=0;
final GridBagConstraints dealSpec=新GridBagConstraints();
layoutSpec.gridx=4;
layoutSpec.gridy=4;
final GridBagConstraints dealSpecs=新的GridBagConstraints();
layoutSpec.gridx=7;
layoutSpec.gridy=7;
JPanel cardA=新的JPanel();
cardA.setPreferredSize(新尺寸(100100));
添加(cardA,BorderLayout.NORTH);
对于(int i=0;i<13;i++){//为手牌a创建一手牌的循环
添加(新的JButton(“卡A-”+Integer.toString(i+1)),布局规范);
}
JPanel cardB=新的JPanel();
卡片b.设置首选尺寸(新尺寸(100100));
添加(cardB,BorderLayout.EAST);
对于(inti=0;i<13;i++){//为手牌B创建一手牌的循环
添加(新的JButton(“卡B-”+Integer.toString(i+1)),布局规范);
}
JPanel cardC=新的JPanel();
卡片设置首选尺寸(新尺寸(100100));
添加(cardC,BorderLayout.WEST);
对于(inti=0;i<13;i++){//为手牌C创建一手牌的循环
添加(新的JButton(“卡C-”+Integer.toString(i+1)),布局规范);
}
JPanel cardD=新的JPanel();
卡片设置首选尺寸(新尺寸(100100));
添加(cardD,BorderLayout.SOUTH);
对于(inti=0;i<13;i++){//为手牌D创建一手牌的循环
cardD.add(新的JButton(“cardD-”+Integer.toString(i+1)),布局规范);
}
JPanel fillCenter=新的JPanel();
fillCenter.setPreferredSize(新尺寸(100100));
add(fillCenter,BorderLayout.CENTER);//添加填充JFrame中心的面板
add(newjbutton(“Deal”),dealSpec);//在fillCenter JPanel顶部添加一个Deal按钮
add(newjbutton(“Reset”),dealSpecs);//在fillCenter JPanel顶部添加一个Reset按钮
}
@凌驾
已执行的公共无效操作(操作事件){
if(event.getSource()==(交易)){
};
if(event.getSource()=(“交易”);
对于(int i=0;i<13;i++){
if(event.getSource()==(“卡片”+整数.toString(i+1)));
}
}
公共静态void main(字符串[]args){
CardGame卡=新的CardGame();
卡片。设置为可见(真);
返回;
}
}

试试这个
((JButton)event.getSource()).setVisible(false);