Witam.
Mam do napisania aplikację,która umożliwia rysowanie okręgów (o różnych kolorach i promieniach) o środkach wskazanych kliknięciem myszy.
Kolory mają być wybierane dzięki JComboBox. Nie za bardzo wiem jak to zrobić.
Moja aplikacja na razie działa w ten sposób, że wyświetla się lista kolorów ale nie można żadnego wybrać, okrąg, który się pojawia jest w kolorze czarnym.
Proszę o pomoc.
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JComboBox;
public class Mysz {
private JFrame frame;
private MyPanel panelRysuj;
private int x;
private int y;
private int r=50;
private boolean czyRysuj=false;
private JTextField textField;
JComboBox colorCombo;
private class MyPanel extends JPanel implements MouseListener{
MyPanel(){
addMouseListener(this);
}
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
if(czyRysuj){
g.drawOval(x-r, y-r, 2*r, 2*r);
}
}
@Override
public void mouseClicked(MouseEvent e) {
czyRysuj=true;
x=e.getX();
y=e.getY();
repaint();
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Mysz window = new Mysz();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Mysz() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.getContentPane().add(panel, BorderLayout.CENTER);
panel.setLayout(new BorderLayout(0, 0));
JPanel panelNorth = new JPanel();
panel.add(panelNorth, BorderLayout.NORTH);
JLabel lblNewLabel = new JLabel("Promien");
panelNorth.add(lblNewLabel);
textField = new JTextField();
textField.setText("30");
panelNorth.add(textField);
textField.setColumns(10);
JLabel lblNewLabel_1 = new JLabel("Kolor");
panelNorth.add(lblNewLabel_1);
String[] kolory = { "czarny", "czerwony ", "różowy"};
JComboBox comboBox = new JComboBox(kolory);
panelNorth.add(comboBox);
panelRysuj = new MyPanel();
panel.add(panelRysuj, BorderLayout.CENTER);
}
}