내 ap comp sci 프로젝트를위한 약간의 콤보 박스 메뉴를 만들고 있습니다. 이것은 GUI로 작업 한 처음이므로 아직 익숙해 져 있습니다. 메뉴 클래스와 GPA 계산 등의 간단한 작업을 수행하는 대부분의 void 메서드를 실행하는 몇 가지 다른 클래스가 있습니다. 내 메뉴가 잘 작동하고 있습니다 (적어도 그렇게 생각합니다). 그러나, 메뉴에서 첫 번째 항목을 선택하면 (현재 한 개의 actionlistener 만 있지만 나중에 추가 할 것입니다.) actionlistener는 void 메서드 (run())를 실행하고 창을 엽니 다. 그러나 그 후에는 아무 일도 일어나지 않습니다. 클래스 백분율 등을 입력하는 해당 메서드에서 사용자 입력이 있고 클래스에서 직접 메서드를 실행할 때 작동합니다. 하지만 actionlistener가 실행될 때 입력 할 수 없거나 입력 할 수 없습니다. 시간을내어 도와 주셔서 감사합니다! 임 실행 방법은 슈퍼 클래스 GradeCalculator 같은 클래스에서 호출 할 수 있다고 가정하는 것내 메뉴 콤보 상자에 대한 actionlistener를 사용하여 다른 클래스에서 void 메서드를 실행하고 있습니다.
package First_Semester_Project;
import java.awt.Color;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Menu extends GradeCalculator
{
String [] info = {"Grade Calculator", "Spanish Conjugator", "Period Table of Elements", "Sentence Compiler"};
JLabel l= new JLabel("Welcome to the Resource Library!");
JComboBox c = new JComboBox(info);
JButton b = new JButton ("Select Resource");
public Menu()
{
frame();
}
public void frame()
{
JFrame f = new JFrame ("Resource Library");
l.setForeground(Color.white);
l.setFont(new Font("Arial", Font.BOLD, 16));
f.setSize(600,90);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
p.setBackground(Color.gray);
p.add(c);
p.add(b);
p.add(l);
f.add(p);
b.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent e){
String s = c.getSelectedItem().toString();
//l.setText(s);
if (s.equals("Grade Calculator"))
{
run();
}
else if (s.equals("travel time"))
{
l.setText(s);
}
}
});
}
괜찮 여기
참조의 클래스이다. 그리고 나는 그것이 안전하지 않은 연산을 사용한다고 컴파일러 경고를 받는다. – user3204894늦게 답장을 드려 죄송합니다. 더 이상 잘못된 코드를 볼 수 있도록 코드 또는 프로젝트 링크를 추가 할 수 있습니까? – Sowry