Hallo,
bin Java-Anfänger und stehe vor einem Problem. Ich möchte eine Matrix in einer GUI ausgeben, wobei die Matrix in Form von Kreisen oder Rechtecken ausgegeben werden soll. Die Eingabe von Reihen und Spalten klappt schon. Aber nach einem Klick soll dann die Matrix erscheinen. Leider schluckt Component keine Graphic Objekte. Hat hier jemand einen Tip oder weiß wie man das löst?
[Java]import java.awt.*;
import javax.swing.JFrame;
import java.awt.event.*;
import java.awt.geom.Ellipse2D;
import java.awt.dnd.*;
import java.util.Vector;
import javax.swing.*;
public class PaintMatrix extends JFrame{
final int FRAME_WIDTH = 910;
final int FRAME_HEIGHT = 660;
final int X_OFFSET = 40;
final int Y_OFFSET = 40;
Ellipse2D.Double kreis;
JTextField spalten;
JTextField reihen;
JComboBox j;
int maxReihen;
int maxSpalten;
String[]menue= {"Kreise", "Rechtecke"};
public PaintMatrix(){
init();
}
public void init(){
setBackground(Color.WHITE);
setLocation(X_OFFSET, Y_OFFSET);
setSize(FRAME_WIDTH, FRAME_HEIGHT);
setTitle("PaintMatrix");
getContentPane().setLayout(null);
setDefaultLookAndFeelDecorated(true);
j= new JComboBox(menue);
j.setBounds(530+150, 240, 100, 25);
SubmitButton s= new SubmitButton("OK");
s.setBounds(530+150, 200, 100, 25);
spalten = new JTextField("spalten");
spalten.setBounds(530,200, 140, 25);
reihen= new JTextField("reihen");
reihen.setBounds(530,230, 140, 25);
kreis= new Ellipse2D.Double(15,40,10,10);
this.add(s);
this.add(spalten);
this.add(reihen);
this.add(j);
repaint();
}
class SubmitButton extends JButton implements ActionListener{
public SubmitButton(String title){
super(title);
addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
maxReihen=Integer.parseInt(reihen.getText());
maxSpalten=Integer.parseInt(spalten.getText());
System.out.println(maxReihen);
spalten.removeAll();
reihen.removeAll();
for(int i=0;i<maxReihen;i++){
for(int j=0;j<maxSpalten;j++){
}
}
}
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2D=(Graphics2D)g;
g2D.draw(kreis);
g.setColor(Color.white);
g.fillRect(100,100, 20, 20);
}
}[/Java]
bin Java-Anfänger und stehe vor einem Problem. Ich möchte eine Matrix in einer GUI ausgeben, wobei die Matrix in Form von Kreisen oder Rechtecken ausgegeben werden soll. Die Eingabe von Reihen und Spalten klappt schon. Aber nach einem Klick soll dann die Matrix erscheinen. Leider schluckt Component keine Graphic Objekte. Hat hier jemand einen Tip oder weiß wie man das löst?
[Java]import java.awt.*;
import javax.swing.JFrame;
import java.awt.event.*;
import java.awt.geom.Ellipse2D;
import java.awt.dnd.*;
import java.util.Vector;
import javax.swing.*;
public class PaintMatrix extends JFrame{
final int FRAME_WIDTH = 910;
final int FRAME_HEIGHT = 660;
final int X_OFFSET = 40;
final int Y_OFFSET = 40;
Ellipse2D.Double kreis;
JTextField spalten;
JTextField reihen;
JComboBox j;
int maxReihen;
int maxSpalten;
String[]menue= {"Kreise", "Rechtecke"};
public PaintMatrix(){
init();
}
public void init(){
setBackground(Color.WHITE);
setLocation(X_OFFSET, Y_OFFSET);
setSize(FRAME_WIDTH, FRAME_HEIGHT);
setTitle("PaintMatrix");
getContentPane().setLayout(null);
setDefaultLookAndFeelDecorated(true);
j= new JComboBox(menue);
j.setBounds(530+150, 240, 100, 25);
SubmitButton s= new SubmitButton("OK");
s.setBounds(530+150, 200, 100, 25);
spalten = new JTextField("spalten");
spalten.setBounds(530,200, 140, 25);
reihen= new JTextField("reihen");
reihen.setBounds(530,230, 140, 25);
kreis= new Ellipse2D.Double(15,40,10,10);
this.add(s);
this.add(spalten);
this.add(reihen);
this.add(j);
repaint();
}
class SubmitButton extends JButton implements ActionListener{
public SubmitButton(String title){
super(title);
addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
maxReihen=Integer.parseInt(reihen.getText());
maxSpalten=Integer.parseInt(spalten.getText());
System.out.println(maxReihen);
spalten.removeAll();
reihen.removeAll();
for(int i=0;i<maxReihen;i++){
for(int j=0;j<maxSpalten;j++){
}
}
}
}
public void paint(Graphics g){
super.paint(g);
Graphics2D g2D=(Graphics2D)g;
g2D.draw(kreis);
g.setColor(Color.white);
g.fillRect(100,100, 20, 20);
}
}[/Java]