여러 계산을 수행 한 후 x 및 y 좌표로 구성된 점을 점 배열 목록에 저장하는 시뮬레이션을 만들었습니다.JComboBox를 사용하여 그려지는 그림의 색을 설정합니다.
그렇다면 for 루프를 사용하여 각 점을 반복하고 그 점을 GUI에 그립니다. 다음은 시뮬레이션과 drawPoint 방법의 끝에서 실행 제에 대한 루프 :
//Iterates through each point in Point Array List
for(Point i: PointArray)
{
drawPoint(g, i, black); //Draw Point
}
//Draws point onto panel
public void drawPoint(Graphics g, Point PointArray, Color color)
{
Graphics2D g2d = (Graphics2D)g;
g2d.setStroke(new BasicStroke(2f));
g.setColor(color); //g2d.setColor(Color.black);
g2d.drawOval((int)PointArray.a, (int)PointArray.b, 2, 2);
}
나는 사용자들이 그릴 때 플롯이 착색 될 원하는 색상을 지정할 수 있도록하는 JComboBox를 구현하려는. 나는 이것을 위해 다른 색체를 만들었습니다.
내 actionPerformed 메서드에는 시뮬레이션을 시작, 중지 및 지우는 JButton 이벤트를 처리하는 코드가 있습니다. 나는 다음과 같은 오류가 무엇입니까
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();
JComboBox cb = (JComboBox)e.getSource();
String colorName = (String)cb.getSelectedItem();
//Get Graphics on Drawing Panel
Graphics g = dPanel.getGraphics();
//if JButton source == start, do something
//if JButton source == stop, do something
//If JButton source == erase, do something
if(colorName == "Default")
{
g.setColor(black);
}
if(colorName == "Red")
{
g.setColor(startColor);
}
if(colorName == "Green")
{
g.setColor(forestGreen);
}
}
: 이 내의 actionPerformed 방법에 대한이 무엇 스레드에서 예외 "AWT-EventQueue의-0"java.lang.ClassCastException가 : javax.swing.JButton는 캐스트 할 수없는 (SimulationGUI.java:332)
내 질문은 내가 할 수있는 일이며 가능하다면 (내 구현이 작동하지 않는다면) 이 일을 성취하는 방법은 무엇입니까?
편집 :
여기에 JComboBox에 대한 나의 새로운 액션 청취자입니다 : 콤보 상자 및 버튼에 대한
colorBox.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JComboBox cb = (JComboBox)e.getSource();
String colorName = (String)cb.getSelectedItem();
Graphics g = dPanel.getGraphics();
if(colorName.equals("Default"))
{
g.setColor(black);
}
if(colorName.equals("Red"))
{
g.setColor(startColor);
}
if(colorName.equals("Green"))
{
g.setColor(forestGreen);
}
if(colorName.equals("Blue"))
{
g.setColor(eraseColor);
}
}
});
}
, 왜 당신은'JComboBox'에 캐스팅하는 것은 처음부터 유효 할 것이라고 생각하십니까? 'JComboBox' 인스턴스를 현재의 클래스의 필드로합니다. 그리고'JButton'에서 액션 이벤트가 발생하면 위와 마찬가지로 JComboBox 인스턴스에 대해 현재 선택된 아이템을 쿼리합니다. – mre