未亡人の背景色を要求するセットアップ ウィザードを作成したいと考えています。また、IconImage 型の変数を保存する参照ボタンも必要です。このコードでコンパイル エラーが発生します。助けてください!これが最初のコードです:
import java.awt.color.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
public class Setup {
private static String colorSelected;
public static void main(String[] args) {
final 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");
final String Colors = new String[]{"black", "blue", "cyan", "darkGray", "gray", "green", "lightGray", "magenta", "orange", "pink", "red", "white", "yellow"};
final JList colors = new JList(Colors);
colors.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
colors.setLayoutOrientation(JList.VERTICAL);
JScrollPane listScroller = new JScrollPane(colors);
colors.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
int index = e.getFirstIndex();
colorSelected = Colors[index];
}
});
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 Color[] Selected = new Color[1];
if (colorSelected .equals("black")) {
Selected[0] = new Color(0,0,0);
}
else if (colorSelected .equals("blue")) {
Selected[0] = new Color(0,0,255);
}
else if (colorSelected .equals("cyan")) {
Selected[0] = new Color(0,225,225);
}
else if (colorSelected .equals("darkGray")) {
Selected[0] = new Color(169,169,169);
}
else if (colorSelected .equals("gray")) {
Selected[0] = new Color(128,128,128);
}
else if (colorSelected .equals("green")) {
Selected[0] = new Color(0,255,0);
}
else if (colorSelected .equals("lightGray")) {
Selected[0] = new Color(211,211,211);
}
else if (colorSelected .equals("magenta")) {
Selected[0] = new Color(255,0,255);
}
else if (colorSelected .equals("orange")) {
Selected[0] = new Color(255,165,0);
}
else if (colorSelected .equals("pink")) {
Selected[0] = new Color(255,20,147);
}
else if (colorSelected .equals("red")) {
Selected[0] = new Color(255,0,0);
}
else if (colorSelected .equals("white")) {
Selected[0] = new Color(255,255,255);
}
else if (colorSelected .equals("yellow")) {
Selected[0] = new Color(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());
}
});
}
}
エラーは次のとおりです。
Setup.java:15: error: incompatible types
final String Colors = new String[]{"black", "blue", "cyan", "darkGray", "gray", "green", "lightGray", "magenta", "orange", "pink", "red", "white", "yellow"};
^
required: String
found: String[]
Setup.java:16: error: no suitable constructor found for JList(String)
final JList colors = new JList(Colors);
^
constructor JList.JList() is not applicable
(actual and formal argument lists differ in length)
constructor JList.JList(Vector) is not applicable
(actual argument String cannot be converted to Vector by method invocation conversion)
constructor JList.JList(Object[]) is not applicable
(actual argument String cannot be converted to Object[] by method invocation conversion)
constructor JList.JList(ListModel) is not applicable
(actual argument String cannot be converted to ListModel by method invocation conversion)
Setup.java:23: error: array required, but String found
colorSelected = Colors[index];
^
3 errors
ヘルプ/新しいコードは大歓迎です! ありがとう ところで、JList は文字列の配列で作成できます。理解できない!助けてください!