Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击后隐藏JButton(图像)_Java_Eclipse_Image_Swing - Fatal编程技术网

Java 单击后隐藏JButton(图像)

Java 单击后隐藏JButton(图像),java,eclipse,image,swing,Java,Eclipse,Image,Swing,我已经创建了一个带有JButton(图像)和normal图像的程序,现在如果单击normal按钮,图像将显示,现在我有一个程序,如果单击normal按钮,JButton(图像)将隐藏,但我不工作,并且我得到一个错误代码 package View; import java.awt.Color; import java.awt.Container; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Font; im

我已经创建了一个带有JButton(图像)和normal图像的程序,现在如果单击normal按钮,图像将显示,现在我有一个程序,如果单击normal按钮,JButton(图像)将隐藏,但我不工作,并且我得到一个错误代码

package View;

import java.awt.Color;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;


import Controller.HideController;
import Controller.HomeController;
import Controller.SelectieController;

public class Selectie extends JFrame{

private static String Vermeer = "Vermeer";

private JLabel label, label1, label2;
    private JButton keeper, kruis;
    private JPanel panel;
    private Container window = getContentPane();

 public Selectie()
    {
        initGUI();

    }

    public void initGUI()
    {
        setLayout(null);
        setTitle("Jari");
        setSize(800,600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


        label = new JLabel();       
        label.setBounds(0, 0, 266, 800);
        label.setBackground(Color.RED);
        label.setOpaque(true);
        window.add(label);

        label1 = new JLabel();
        label1.setBounds(266, 0, 266, 800);
        label1.setBackground(Color.BLACK);
        label1.setOpaque(true);
        window.add(label1);

        label2 = new JLabel();
        label2.setBounds(532, 0, 266, 800);
        label2.setBackground(Color.RED);
        label2.setOpaque(true);
        window.add(label2);

        JLabel foto = new JLabel();
        label1.add(foto);

        kruis = new JButton(new ImageIcon("../Ajax/src/img/logotje.gif"));
        kruis.setBorderPainted(false);
        kruis.setBounds(40, 150, 188, 188);
        label1.add(kruis);

        keeper = new JButton("1. "+""+" Kenneth Vermeer");
        Cursor cur = keeper.getCursor();
        keeper.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        keeper.setBounds(20, 50, 186, 12);
        keeper.setFocusable(false);
        keeper.setBorderPainted(false);
        keeper.setContentAreaFilled(false);
        keeper.setFont(new Font("Arial",Font.PLAIN,17));
        keeper.setForeground(Color.WHITE);
        keeper.setActionCommand(Vermeer);
        label.add(keeper);

SelectieController s1 = new SelectieController(keeper);

        keeper.addActionListener(s1);

}

    HideController h1 = new HideController(keeper, kruis);
        {
        keeper.addActionListener(h1);
        }

}
操作侦听器类:

package Controller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.SwingUtilities;

public class HideController implements ActionListener {

    private JButton keeper, logo;
    private static String Vermeer = "Vermeer";

    public HideController(JButton vermeer, JButton kruis)
    {
        keeper = vermeer;
        logo = kruis;
  //Kenneth Vermeer
     try
    {
        keeper.setVisible(true);

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
     logo.setVisible(false);
    }

    public void actionPerformed(ActionEvent event)
    {
        String actionCommand = event.getActionCommand();
        // Kenneth Vermeer
        if (Vermeer.equals(actionCommand)) 
        {
            SwingUtilities.invokeLater(new Runnable()
            {
                public void run()
                {                       
                    logo.setVisible(false);
                }
            });
    }



    }}

我希望有人能帮助我,谢谢

如果你想取消按钮,可以使用
窗口。删除(保管员)
。如果您不想要图像,但仍然希望按钮在那里,您可以尝试
logo=null
,这会将logo上的图标设置为空,留下一个白色框。如果您在Windows上编码,可以使用
keeper.setBackgroundColor(color.Blue)
或任何背景颜色添加背景色,但是Mac OS的外观和感觉不允许这样做,因为某些原因。(您可以使用更改外观,但这相当复杂)如果您有更复杂的背景,我建议您从右侧拍摄一个带有屏幕截图(按钮在代码中注释掉)的样本,并将徽标设置为该图像。

1)我得到一个错误代码。。。请把它也寄出去。2) 不要发布一堆不相关的代码(如所有标签,空布局…)发布一个3)不要使用空布局4)请尊重Java命名约定为什么要将
JButton
添加到
JLabel
?还是你只是做错了什么<代码>标签1.add(kruis)