Wie ktos moze jak zrobic by po nacisnieciu klawisza rzuc narysowac cos na panelu o nazwie wykres.
Program bedzie (mam nadzieje ze skoncze) symulacja rzutu ukosnego.Napisalem go kiedys w c++ i chcialbym przepisac na jave ale utknelem z tym rysowaniem :/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RzutUkosny extends JFrame implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("Dzialam");
}
JFrame frame;
JButton rzuc = new JButton("Rzuć");
JPanel wykres = new JPanel();
JPanel panel = new JPanel();
JPanel butto = new JPanel();
JPanel parametry = new JPanel();
Container cp = getContentPane();
public RzutUkosny() {
frame = new JFrame("Syulacja rzutu ukosnego");
frame.setSize(600, 400);
panel.setLayout(new BorderLayout());
frame.getContentPane().add(panel);
rzuc.setFont(new Font("Helvetica", 0, 11));
rzuc.setToolTipText("Start symulacji");
//Slider1 - ustawienia
JLabel sliderLabel = new JLabel("Ustaw Prędkosc", JLabel.CENTER);
sliderLabel.setFont(new Font("Helvetica", 0, 11));
JSlider predkoscPoczatkowa = new JSlider(JSlider.HORIZONTAL, 0, 100, 50);
predkoscPoczatkowa.setFont(new Font("Helvetica", 0, 11));
predkoscPoczatkowa.setMajorTickSpacing(50);
predkoscPoczatkowa.setMinorTickSpacing(10);
predkoscPoczatkowa.setPaintTicks(true);
predkoscPoczatkowa.setPaintLabels(true);
predkoscPoczatkowa.setBackground(new Color(164, 223, 247));
predkoscPoczatkowa.setToolTipText("Ustaw prędkosc początkową (km/h)");
//Slider2 - ustawienia
JLabel slider2Label = new JLabel("Ustaw Kąt", JLabel.CENTER);
slider2Label.setFont(new Font("Helvetica", 0, 11));
JSlider kat = new JSlider(JSlider.HORIZONTAL, 0, 90, 45);
kat.setMajorTickSpacing(45);
kat.setMinorTickSpacing(10);
kat.setPaintTicks(true);
kat.setPaintLabels(true);
kat.setBackground(new Color(164, 223, 247));
kat.setToolTipText("Ustaw kąt wyrzutu (stopnie)");
//Panel wykresu - ustawienia
wykres.setLayout(new BorderLayout());
wykres.setBackground(new Color(255, 255, 255));
wykres.setPreferredSize(new Dimension(0, 250));
wykres.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
//Penel parametrow - ustawienia
parametry.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
parametry.setBackground(new Color(164, 223, 247));
parametry.setPreferredSize(new Dimension(0, 100));
parametry.setLayout(new GridLayout(2, 3));
parametry.add(sliderLabel);
parametry.add(slider2Label);
parametry.add(butto);
parametry.add(predkoscPoczatkowa);
parametry.add(kat);
butto.setBackground(new Color(164, 223, 247));
butto.add(rzuc);
panel.add(parametry, BorderLayout.SOUTH);
Panelik wykres = new Panelik();
wykres.setBackground(Color.white);
panel.add(wykres);
rzuc.addActionListener(this);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String args[]) {
RzutUkosny nowy = new RzutUkosny();
}
}
class Panelik extends JPanel {
Graphics d;
public void paintComponent(Graphics g) {
super.paintComponent(g);
//Rysowanie wykresu
g.setColor(Color.black);
g.drawLine(580, 250, 20, 250);
g.drawLine(20, 20, 20, 250);
g.drawLine(15, 30, 20, 20);
g.drawLine(25, 30, 20, 20);
g.drawLine(570, 255, 580, 250);
g.drawLine(570, 245, 580, 250);
Font font = new Font("Helvetica", 0, 11);
g.setFont(font);
g.drawString("x", 10, 20);
g.drawString("y", 570, 265);
}
public void rysuj() {
}
}