Hallo Leute,
ich möchte mein Code auf 2 Arte schreiben
-
Ich möchte dass wenn ich auf Button klicke möchte ich dass Diagramm in dem Ort aufscheint wo p_unten sein soll.
Was soll ich dazu in meine Codes ändern? -
Wenn ich auf Button klicke möchte ich dass Diagramm in neues Fenster öffnet ? Natürlich muss ich p_unten in Test.java löschen.
Wie soll ich Instanz von Klasse Balkendiagramm nützen?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Test extends JFrame {
JLabel l1;
JButton b1;
double preis;
Balkendiagramm malflaeche = new Balkendiagramm();
public Test() {
JPanel p_oben = new JPanel();
JPanel p_mitte = new JPanel();
JPanel p_unten = new JPanel();
GridLayout layfenster = new GridLayout(4, 1);
l1 = new JLabel("Klicken um Diagramm anzuzeigen");
p_oben.add(l1);
b1 = new JButton("OK");
p_mitte.add(b1);
setLayout(layfenster);
add(p_oben);
add(p_mitte);
add(p_unten);
b1.addActionListener(new CLauscher());
}
class CLauscher implements ActionListener {
public void actionPerformed(ActionEvent e) {
String s;
System.out.println("Test-3333--------");
s = e.getActionCommand();
if (s.equals("OK")) {
System.out.println("Test---------");
}
}
}
public static void main(String[] args) {
Test a = new Test();
a.setSize(300, 500);
a.setVisible(true);
a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
import java.awt.*;
import java.awt.event.*;
public class Balkendiagramm extends JFrame {
MeineCanvas malflaeche;
String[] monat = new String[] { "Jan", "Feb", "M‰rz", "April", "Mai",
"Juni", "Juli", "Aug", "Sept", "Okt", "Nov", "Dez" };
int[] h = new int[] { 150, 170, 140, 100, 15, 0, 30, 50, 100, 135, 160, 200 };
Balkendiagramm() {
malflaeche = new MeineCanvas();
JPanel p = new JPanel();
p.setLayout(new FlowLayout());
add(malflaeche);
}
class MeineCanvas extends Canvas {
MeineCanvas() {
setBackground(Color.BLACK);
}
public void paint(Graphics g) {
int x = 10;
int b = 10;
g.setColor(Color.red);
g.drawLine(5, 20, 5, 250);
g.drawLine(5, 250, 600, 250);
for (int i = 0; i < 12; i++) {
int rot = (int) (Math.random() * 256);
int gruen = (int) (Math.random() * 256);
int blau = (int) (Math.random() * 256);
g.setColor(new Color(rot, gruen, blau));
g.fillRect(x, 250 - h**, b, h**);
g.drawString(monat**, x, 260);
x = x + 50;
}
}
}
public static void main(String args[]) {
Balkendiagramm z = new Balkendiagramm();
z.pack();
z.setSize(800, 350);
z.setVisible(true);
z.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}```
Auf eure Hilfe wurde ich mich sehr freuen
LG Anni