私は準備段階にあり、何を試してもプログラムを実行できないようです。この問題は、キーワード「this」の呼び方に関係していると思いますが、よくわかりません。
今のところ、JComboBox で強調表示されているものを単純に出力するだけのプログラムを用意しています。これは、「if」ステートメントを使用して比較の側面を後で簡単に実行できるようにするためです。どんな助けでも大歓迎です。これが私のコードです:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Main extends JPanel implements ActionListener {
JFrame frame;
JPanel panel;
JLabel label1;
JLabel label2;
public Main() {
super(new BorderLayout());
String[] colorStrings = { "", "Black", "White", "Red", "Blue", "Yellow",
"Green", "Orange", "Purple"};
JComboBox color1 = new JComboBox(colorStrings);
color1.setSelectedIndex(7);
color1.addActionListener(this);
JComboBox color2 = new JComboBox(colorStrings);
color2.setSelectedIndex(7);
color2.addActionListener(this);
add(label1, BorderLayout.PAGE_START);
add(color1, BorderLayout.PAGE_START);
add(label2, BorderLayout.PAGE_END);
add(color2, BorderLayout.PAGE_END);
setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
}
public void actionPerformed(ActionEvent e) {
JComboBox listen1 = (JComboBox)e.getSource();
String otherColor1 = (String)listen1.getSelectedItem();
System.out.println(otherColor1);
JComboBox listen2 = (JComboBox)e.getSource();
String otherColor2 = (String)listen2.getSelectedItem();
System.out.println(otherColor2);
}
private static void createAndShowGUI(JComboBox color1, JComboBox color2) {
JFrame frame = new JFrame("Does it match?");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JComponent newContentPane = new Main();
newContentPane.add(color1, color2);
newContentPane.setOpaque(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
表示されるエラーは次のとおりです。
run: スレッド "AWT-EventQueue-0" での例外 java.lang.RuntimeException: コンパイルできないソース コード - 誤った sym タイプ: createAndShowGUI at Main$1.run(Main.java:53) at java.awt.event.InvocationEvent.dispatch( InvocationEvent.java:251) で java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727) で java.awt.EventQueue.access$200(EventQueue.java:103) で java.awt.EventQueue$3.run(EventQueue.java) :688) で java.awt.EventQueue$3.run(EventQueue.java:686) で java.security.AccessController.doPrivileged(Native Method) で java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) で java. awt.EventQueue.dispatchEvent(EventQueue.java:697) で java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) で java.awt.EventDispatchThread で。java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) では、java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) で、java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java :138) java.awt.EventDispatchThread.run(EventDispatchThread.java:91) でビルド成功 (合計時間: 3 秒)