السلام عليكم ورحمة الله وبركاته
واجهتني مشكلة أثناء العمل على هذا البرنامج البسيط ، وهي أنني عندما أحاول أن أستدعي
JComobBox الذي أنشأته في ال main class
من ال overriden actionPerformed method
فإنه لا يتعرف عليه cannot find symbol
مع انني أعرف أن العناصر تكون افتراضيا package access
هذا هو الكود ،، لم أكمله لكن وضحت الجزء الذي يحصل فيه الخطأ
package calculate_average;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import java.awt.GridLayout;
import java.awt.event.*;
public class CalculateAverage extends JFrame
{
//Constructor
public CalculateAverage()
{
//Creating GUI components and adding them to frame
JLabel score_label = new JLabel("Score in letters :") ;
add(score_label);
String symbols[]={"","A+","A","A-","B+","B","B-","C+","C","C-","D+","D","F"};
JComboBox select_letter = new JComboBox(symbols);
add(select_letter);
JLabel hours_label = new JLabel("Credit Hours :") ;
add(hours_label);
String no_hours[]={"","1","2","3"};
JComboBox credit_hours = new JComboBox(no_hours);
add(credit_hours);
JButton sum = new JButton("ADD");
add(sum);
JLabel result = new JLabel();
add(result);
//Register listeners
ListenerClass listener = new ListenerClass();
sum.addActionListener(listener);
}
public static void main(String[] args)
{
// Creating container
JFrame frame = new CalculateAverage ();
frame.setVisible(true);
frame.setSize(200, 250);
frame.setLocation(300,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Set layout to GridLayout and applying it to frame
GridLayout grid = new GridLayout(3,2);
frame.setLayout(grid);
} // end of main method
} // end of Main class
class ListenerClass implements ActionListener
{
//Override the abstract method "actoinPerformed"
public void actionPerformed(ActionEvent event)
{
double sum =0;
int partial_hours = 0;
byte total_hours =0;
if(select_letter.getSelectedIndex()=="1";)
partial_hours=1;
}
}