ユーザーがJComboBoxから色を選択し、JButtonを押してJPanelの色をユーザーが選択する色に変更するプログラムを作成しようとしています。 アクションイベントロジックが正しく動作するように見えません。JComboBoxとJButtonのリッスンイベントに関する問題
アクションリスナーを選択して、選択した項目値を取得し、パネルの選択した背景として適用しますが、コンパイルしません。
私の試み
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class EventTest extends JFrame implements ActionListener
{
EventTest()
{
super("My First Frame");
//Create a JPanel and content frame
JPanel panel = new JPanel();
Container contentPane = getContentPane();
//Create a list of colours for our JCombo Box
String colours[] = { "Red", "Yellow", "Green", "Blue", "Orange" };
//Create a JCombo Box
JComboBox colourSelector = new JComboBox (colours);
colourSelector.addActionListener (this); //Add listener to the box
panel.add (colourSelector); //Add combobox to the panel
//Create a JButton
JButton changeColour = new JButton ("Change Colour"); //Create a new JButton.
changeColour.addActionListener (this); //Add listener to the button.
panel.add (changeColour); //Add button to the panel.
//Add the content to the pane
contentPane.add (panel);
//Set window parameters
setTitle ("Lab4");
setSize (800, 600);
setVisible (true);
}//End Constructor
public static void main (String args[])
{
EventTest myFrame = new EventTest();
}
//Action Listener - An action listener that changes the colour of our JPanel to the
//colour selected by the user.
public void actionPerformed (ActionEvent e)
{
int selectedItem = colourSelector.getSelectedItem();
panel.setBackground (Color.selectedItem); //Set the background colour based on our list.
}
}//End Class
「Color.selectedItem "これはどうやって意味をなすことができますか? – Ansharja
あなたのコンポーネントはローカル変数として定義されているので、コンストラクタの外でアクセスするスコープはありません – MadProgrammer