当前位置: 首页 > 知识库问答 >
问题:

图像作为JLabel中的变量,在if-else中使用

孙志
2023-03-14

我是新手所以请耐心等待

我想要什么

我有一个JPanel,上面有一个JButton、一个JLabel和一个JTextArea。按下JButton后,必须在JLabel中打印图像(以及JTextArea中的一些文本)。这个特定的图像(和文本)由if-else语句确定。if-else的条件基于整数变量R。

基本上,这是一个调查,就像我试图做的问答一样。我使用R来记录用户的答案。当用户单击某个选项时,R 的值将更新。

它对文本工作正常,但对图像不起作用。

对于文本,我使用字符串变量你的手机。如果R的值为最后例如120,则您的手机将更新为字符串,例如。Xperia Z.

我想要一个类似的变量,我可以用于图像,以便当用户单击JButton时显示Xpera Z的图片。

在if-else语句中使用R的总值。

结构

我像这样启动变量

int R=0;
String yourphone;
ImageIcon imageresult;

我的J面板,用于显示结果

final JPanel result = new JPanel();
    result.setBackground(Color.BLACK);
    getContentPane().add(result, "name_17130054294139");
    result.setLayout(null);


    final JTextArea txtrphoneresult = new JTextArea();
    txtrphoneresult.setBackground(Color.BLACK);
    txtrphoneresult.setForeground(Color.YELLOW);
    txtrphoneresult.setFont(new Font("Tahoma", Font.PLAIN, 14));
    txtrphoneresult.setBounds(448, 515, 469, 121);
    result.add(txtrphoneresult);


    JLabel resultlabel = new JLabel(imageresult);
    resultlabel.setBounds(292, 122, 782, 346);
    result.add(resultlabel);




    JButton btnShowResult = new JButton("Show Result");
    btnShowResult.setFont(new Font("Tahoma", Font.PLAIN, 10));
    btnShowResult.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            if(R==1726)
            {
                yourphone = "Samsung Galaxy S4\r\nHTC One\r\nSony Xperia Z";
                ImageIcon imageresult = new ImageIcon("galaxy_one_XperiaZ.jpg");
            }
            else if(R==5002)
            {
                yourphone = "Sony Xperia Z1\r\nSamsung Galaxy Note 3";
                ImageIcon imageresult = new ImageIcon("Note3_sonyZ1.jpg");
            }
            else
            {
                yourphone = "No Results";
            }

            txtrphoneresult.setText(yourphone);

     }
     });
    btnShowResult.setBounds(618, 48, 130, 32);
    result.add(btnShowResult);

问题

图像根本不显示。如果有任何其他可能的方法可以实现这一目标,请指导。

共有3个答案

郤浩慨
2023-03-14

在哪里为标签设置图标。你误读了这条线

resultlabel.setIcon(imageresult);
林玮
2023-03-14

if语句之前声明ImageIcon ImagereSult并调用

resultlabel.setIcon(imageresult)

在<code>txtraphoneresult.setText(您的手机)之后

顺便说一句:不要使用空布局/setBounds()。阅读布局并选择合适的布局。

刘向阳
2023-03-14

首先,在< code>if-else中创建< code>imageresult,它并不是对所有方法都可见。并且您没有将您的图像添加到< code>JLabel中。

使resultlabel成为类成员或< code>final变量。用以下方式更改您的代码:

 public void actionPerformed(ActionEvent e) {

        ImageIcon imageresult = null;
        if(R==1726)
        {
            yourphone = "Samsung Galaxy S4\r\nHTC One\r\nSony Xperia Z";
            imageresult = new ImageIcon("galaxy_one_XperiaZ.jpg");
        }
        else if(R==5002)
        {
            yourphone = "Sony Xperia Z1\r\nSamsung Galaxy Note 3";
            imageresult = new ImageIcon("Note3_sonyZ1.jpg");
        }
        else
        {
            yourphone = "No Results";
        }

        resultlabel.setIcon(imageresult)
        txtrphoneresult.setText(yourphone);

 }
 类似资料:
  • 我试图根据if/else语句的结果来回显一个特定的图像,但是我不能完全弄清楚if/else语句的措辞。我是PHP的新手,所以我肯定这只是代码中的某个地方的一个小错误,但如果有人能提供任何帮助,我将不胜感激! 我目前处于以下阶段: 谢谢!

  • 我只是在学习编码,所以我遇到了“k不能解决”的问题。 我以前尝试过引入变量,如果运算符by: 我预期输出为2 相反,无法解析got k

  • 问题内容: 我刚刚开始学习go lang,而对于在go lang中声明变量感到困惑 例如我已经声明,里面if … else语句。 但是终端出现错误 好像我在If语句中声明的任何内容都不起作用…我该如何解决? 问题答案: 因为变量仅在声明它们的范围内定义: 去玩 之间的区别,并是仅仅是分配和对变量的声明和分配新建分配FY语法 这个: 等效于: 您可能想要的是:

  • 我试图将两个值中的一个分配给变量组之外的变量,但找不到如何使用IF-ELSE的引用。 基本上,我需要将这个jerkins逻辑转换为azure DevOps。 詹金斯 我从下面的一个引用中找到了一个引用,但是如果变量部分没有变量组,那么这个引用似乎有效。 https://stackoverflow.com/a/57532526/5862540 但在我的管道中,我已经有了一个用于机密的变量组,因此我必

  • 问题内容: 我有一个试图在Selenium IDE中单击的复选框-但前提是它尚未处于活动状态。 我正在使用Selenium IDE创建测试,并使用htmlsuite运行测试-有人知道我可以在其中使用“ if”吗? 问题答案: 您必须从官方页面下载Selenium IDE的插件(一直下去)。 我发现的最有用的链接是此链接,因为其中有一个完整的示例:http : //selenium.10932.n7

  • 本文向大家介绍在mybatis 中使用if else 进行判断的操作,包括了在mybatis 中使用if else 进行判断的操作的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧~ 需要注意的是 使用了where标签以后,sql中不在使用where字段来限制条件 如果判断条件有多个 中间用 and 表示并列 补充:mybaits中if 多个test 和 if els