【问题标题】:RGB creating with not a statement errorRGB 创建没有语句错误
【发布时间】:2013-07-09 17:00:23
【问题描述】:

我有 39 个错误,但在同一件事上都是相同的错误 (kindve),我不知道出了什么问题!错误都和这个类似:

Setup.java:31: error: ')' expected
                                                Selected[0] = (0,0,0);
                                                                ^
Setup.java:31: error: not a statement
                                                Selected[0] = (0,0,0);
                                                                 ^
Setup.java:31: error: ';' expected
                                                Selected[0] = (0,0,0);
                                                                  ^

这真的很混乱,我不知道出了什么问题请帮助! 这是我的代码:

import java.awt.color.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Setup {
    public static void main(String[] args) {
        JFrame f = new JFrame("Test Setup wizard");
        Container a = f.getContentPane();
        a.setBackground(Color.white);
        a.setLayout(new  FlowLayout());
        JLabel question1 = new JLabel("What would you like the background color to be?");
        JButton Next = new JButton("Next");
        String Colors[];
        Colors = new String[]{"black", "blue", "cyan", "darkGray", "gray", "green", "lightGray", "magenta", "orange", "pink", "red", "white", "yellow"};
        JList colors = new JList(Colors);
        colors.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        colors.setLayoutOrientation(JList.VERTICAL);
        JScrollPane listScroller = new JScrollPane(colors);
        f.add(question1);
        f.add(colors);
        f.add(Next);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(500,500);
        f.setVisible(true);
        final ImageIcon img = new ImageIcon(HardDisk.jpg);
        f.setIconImage(img.getImage());
        Next.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent Ev) {
                    final String selected = colors.getSelectedItem().toString();
                    final Color[] Selected = new Color[1];
                    if (selected == "black") {
                        Selected[0] = (0,0,0);
                    }
                    else if (selected == "blue") {
                        Selected[0] = (0,0,255);
                    }
                    else if (selected == "cyan") {
                        Selected[0] = (0,225,225);
                    }
                    else if (selected == "darkGray") {
                        Selected[0] = (169,169,169);
                    }
                    else if (selected == "gray") {
                        Selected[0] = (128,128,128);
                    }
                    else if (selected == "green") {
                        Selected[0] = (0,255,0);
                    }
                    else if (selected == "lightGray") {
                        Selected[0] = (211,211,211);
                    }
                    else if (selected == "magenta") {
                        Selected[0] = (255,0,255);
                    }
                    else if (selected == "orange") {
                        Selected[0] = (255,165,0);
                    }
                    else if (selected == "pink") {
                        Selected[0] = (255,20,147)
                    }
                    else if (selected == "red") {
                        Selected[0] = (255,0,0);
                    }
                    else if (selected == "white") {
                        Selected[0] = (255,255,255);
                    }
                    else if (selected == "yellow") {
                        Selected[0] = (255,255,0);
                    }
                f.dispose();
                JLabel complete = new JLabel("You are now complete.");
                JFrame f = new JFrame("Complete");
                Container a = f.getContentPane();
                a.setBackground(Selected[0]);
                f.add(complete);
                f.setSize(500,500);
                f.setVisible(true);
                f.setIconImage(img.getImage());
            }
            });
    }
}

任何帮助表示赞赏! 谢谢!

注意: 此帖已移至: HERE. 感谢您的合作

【问题讨论】:

  • final Color[] Selected = new Color[1]; 你创建一个只有一个对象的数组有什么原因吗?

标签: java arrays swing compiler-errors rgb


【解决方案1】:

我怀疑你想要这样的东西:

Selected[0] = new Color(0,0,0);

但您也应该阅读this question,因为您目前正在使用== 比较字符串引用。老实说,您最好填充 Map<String, Color> 而不是使用所有这些 if 语句。

您使用数组而不是仅仅使用Color 类型的简单变量也没有明显的原因。

【讨论】:

  • 我正在使用数组,否则您会收到如下编译错误:variable accessed from inner class, must be declared final
【解决方案2】:

好吧,(0, 0, 0) 本身并不是一个声明。

我认为您的意思是创建一个新的 Color 对象,例如

Selected[0] = new Color(0, 0, 0);

此外,不要将String 值与== 运算符进行比较,后者会比较对象引用以确定它们是否是同一个对象。使用String 中的equals 方法比较String 的值。

【讨论】:

    【解决方案3】:

    您缺少使用 RGB 值调用构造函数的 Color 类:

    替换这个

    Selected[0] = (0,0,0);
    

    Selected[0] = new Color(0,0,0);
    

    【讨论】:

      猜你喜欢
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      相关资源
      最近更新 更多