Ich sitz bereits das ganze Wochenende vor folgendem Problem:
Ich habe eine Anwendung zum Berechnen der Magnus-Kraft (sollte man aus dem Physik-Unterricht vielleicht kennen). In dieser Anwendung befindet sich eine Zeichnung, bestehend aus einem Ball sowie einigen Stromlinien.
Mein Problem ist nun: Wie schaffe ich es, beim Klick auf den Button zum Berechnen dieser Kraft einen Pfeil zur Zeichnung hinzuzufügen? Dieser Pfeil soll durch eine if/else-Abfrage (abhängig von Werten, die in zwei Textfelder eingegeben werden) entweder nach oben oder unten zeigen.
Ich bin Anfänger (Informatik seit 11. Klasse), da in letzter Zeit (2 Monate lang) nur Unterricht ausfällt, habe ich nicht wirklich viel Wissen in Bezug auf Java. Wir arbeiten mit Eclipse, mit dem WindowBuilder als Hilfe. Als Lernstoff hatten wir bisher nur einfache Programme, bestehend aus Textfeldern und Buttons (und den daraus folgenden Berechnungen), sowie die Schleifen.
Im Folgenden habe ich den Quellcode angefügt. Ich bedanke mich schon jetzt für jede Hilfe.
Ich habe eine Anwendung zum Berechnen der Magnus-Kraft (sollte man aus dem Physik-Unterricht vielleicht kennen). In dieser Anwendung befindet sich eine Zeichnung, bestehend aus einem Ball sowie einigen Stromlinien.
Mein Problem ist nun: Wie schaffe ich es, beim Klick auf den Button zum Berechnen dieser Kraft einen Pfeil zur Zeichnung hinzuzufügen? Dieser Pfeil soll durch eine if/else-Abfrage (abhängig von Werten, die in zwei Textfelder eingegeben werden) entweder nach oben oder unten zeigen.
Ich bin Anfänger (Informatik seit 11. Klasse), da in letzter Zeit (2 Monate lang) nur Unterricht ausfällt, habe ich nicht wirklich viel Wissen in Bezug auf Java. Wir arbeiten mit Eclipse, mit dem WindowBuilder als Hilfe. Als Lernstoff hatten wir bisher nur einfache Programme, bestehend aus Textfeldern und Buttons (und den daraus folgenden Berechnungen), sowie die Schleifen.
Im Folgenden habe ich den Quellcode angefügt. Ich bedanke mich schon jetzt für jede Hilfe.
Java:
package Berechnung;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import java.awt.Color;
import javax.swing.UIManager;
import java.awt.SystemColor;
import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JSeparator;
public class Berechnung extends JFrame
{
private JPanel contentPane;
private JTextField txt_eingabe_p1;
private JTextField txt_eingabe_p2;
private JTextField txt_eingabe_A;
private JTextField txt_ausgabe;
private JTextArea txtrFlugrichtung;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Berechnung frame = new Berechnung();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public void paint(Graphics object)
{
super.paint(object);
object.setColor(Color.black);
object.drawOval(290, 150, 70, 70);
object.drawLine(340, 110, 660, 110);
object.drawLine(340, 110, 345, 105);
object.drawLine(340, 110, 345, 115);
object.drawLine(380, 130, 660, 130);
object.drawLine(380, 130, 385, 135);
object.drawLine(380, 130, 385, 125);
object.drawLine(400, 150, 660, 150);
object.drawLine(400, 150, 405, 155);
object.drawLine(400, 150, 405, 145);
object.drawLine(410, 170, 660, 170);
object.drawLine(410, 170, 415, 175);
object.drawLine(410, 170, 415, 165);
object.drawLine(410, 190, 660, 190);
object.drawLine(410, 190, 415, 195);
object.drawLine(410, 190, 415, 185);
object.drawLine(80, 190, 200, 190);
object.drawLine(195, 195, 200, 190);
object.drawLine(195, 185, 200, 190);
object.drawLine(410, 210, 660, 210);
object.drawLine(410, 210, 415, 215);
object.drawLine(410, 210, 415, 205);
object.drawLine(400, 230, 660, 230);
object.drawLine(400, 230, 405, 235);
object.drawLine(400, 230, 405, 225);
object.drawLine(380, 250, 660, 250);
object.drawLine(380, 250, 385, 255);
object.drawLine(380, 250, 385, 245);
object.drawLine(340, 270, 660, 270);
object.drawLine(340, 270, 345, 275);
object.drawLine(340, 270, 345, 265);
}
/**
* Create the frame.
* @return
**/
public Berechnung() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 670, 652);
setTitle("Magnus-Kraft Berechner - Beta");
contentPane = new JPanel();
contentPane.setBackground(Color.WHITE);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
txt_eingabe_p1 = new JTextField();
txt_eingabe_p1.setHorizontalAlignment(SwingConstants.CENTER);
txt_eingabe_p1.setText("Druck");
txt_eingabe_p1.setBackground(UIManager.getColor("CheckBox.background"));
txt_eingabe_p1.setBounds(295, 40, 57, 28);
contentPane.add(txt_eingabe_p1);
txt_eingabe_p1.setColumns(10);
txt_eingabe_p2 = new JTextField();
txt_eingabe_p2.setHorizontalAlignment(SwingConstants.CENTER);
txt_eingabe_p2.setText("Druck");
txt_eingabe_p2.setColumns(10);
txt_eingabe_p2.setBackground(SystemColor.window);
txt_eingabe_p2.setBounds(295, 267, 57, 28);
contentPane.add(txt_eingabe_p2);
txt_eingabe_A = new JTextField();
txt_eingabe_A.setForeground(Color.BLACK);
txt_eingabe_A.setHorizontalAlignment(SwingConstants.CENTER);
txt_eingabe_A.setText("Fl\u00E4che");
txt_eingabe_A.setColumns(10);
txt_eingabe_A.setBackground(SystemColor.window);
txt_eingabe_A.setBounds(295, 152, 57, 22);
contentPane.add(txt_eingabe_A);
JButton btn = new JButton(" \nBerechne\n\n");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
int p1 = Integer.parseInt(txt_eingabe_p1.getText());
int p2 = Integer.parseInt(txt_eingabe_p2.getText());
int A = Integer.parseInt(txt_eingabe_A.getText());
int pD;
int F;
if ( p1>p2 ) {
pD = p1 - p2;
} else {
pD = p2 - p1;
}
F = pD * A;
if (p1>p2) {
txt_ausgabe.setText("Die Magnus-Kraft betraegt ca. "+ F + " Newton und wirkt nach ↓");
} else {
txt_ausgabe.setText("Die Magnus-Kraft betraegt ca. "+ F + " Newton und wirkt nach ↑");
}
}
});
btn.setBounds(278, 461, 92, 40);
contentPane.add(btn);
txt_ausgabe = new JTextField();
txt_ausgabe.setHorizontalAlignment(SwingConstants.CENTER);
txt_ausgabe.setBackground(UIManager.getColor("CheckBox.background"));
txt_ausgabe.setBounds(91, 526, 471, 28);
contentPane.add(txt_ausgabe);
txt_ausgabe.setColumns(10);
JTextArea txtrKlickenSieAuf = new JTextArea();
txtrKlickenSieAuf.setText(" Diese Applikation berechnet die Magnus-Kraft und stellt diese dar.\nFüllen Sie die benötigten Eingabefelder aus und klicken Sie auf \"Berechnen\", \n um die Magnus-Kraft berechnen und darstellen zu lassen.\n\n");
txtrKlickenSieAuf.setBounds(89, 382, 581, 47);
contentPane.add(txtrKlickenSieAuf);
txtrFlugrichtung = new JTextArea();
txtrFlugrichtung.setText("Flugrichtung\n");
txtrFlugrichtung.setBounds(103, 175, 86, 28);
contentPane.add(txtrFlugrichtung);
JSeparator separator = new JSeparator();
separator.setBounds(-20, 334, 708, 12);
contentPane.add(separator);
}
}