首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有单选按钮的图片用户输入

没有单选按钮的图片用户输入
EN

Stack Overflow用户
提问于 2014-11-22 17:26:50
回答 1查看 66关注 0票数 0

我正在创建一个程序,在这个程序中,用户点击4幅图片中的1张,作为他们对问题的输入。回答完问题后,窗口将转到下一个问题。我该怎么做?我是应该用用例来处理图像,还是说它们是更有效的方法?

例如:问题是哪个图像是Dora的?还有朵拉、布拉德·皮特、赛琳娜·戈麦斯和达菲·达克的形象。如果用户单击图像(没有单选按钮),程序应该保存输入,然后转到下一个问题。

我的问题更具体地是如何使图像用户点击一个输入,可以保存。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-24 15:50:21

我建议使用JLabels构造函数创建ImageIcon,让类实现MouseListener,然后为每个JLabels使用addMouseListener方法。您是要为每个实例创建一个匿名MouseListener,还是只使用类实例,这取决于您。下面是一个帮助您入门的示例:

代码语言:javascript
复制
import java.awt.BorderLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;

public class Test implements MouseListener {
    private JLabel imageLabel1, imageLabel2;

    public Test() {
        JFrame frame = new JFrame("Test");
        frame.setLayout(new BorderLayout());

        JLabel introLabel = new JLabel("Click an image");
        introLabel.setHorizontalAlignment(SwingConstants.CENTER);
        frame.add(introLabel,BorderLayout.NORTH);

        imageLabel1 = new JLabel(new ImageIcon("image1.png"));
        frame.add(imageLabel1,BorderLayout.WEST);
        imageLabel1.addMouseListener(this);

        imageLabel2 = new JLabel(new ImageIcon("image2.png"));
        frame.add(imageLabel2,BorderLayout.EAST);
        imageLabel2.addMouseListener(this);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }

    @Override
    public void mouseClicked(MouseEvent ev) {
        if (ev.getSource() == imageLabel1)
            System.out.println("Image 1 clicked");
        if (ev.getSource() == imageLabel2)
            System.out.println("Image 2 clicked");
    }

    @Override public void mouseEntered(MouseEvent ev) {}
    @Override public void mouseExited(MouseEvent ev) {}
    @Override public void mousePressed(MouseEvent ev) {}
    @Override public void mouseReleased(MouseEvent ev) {}

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new Test();
            }
        });
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27080281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档