Zoals jullie vast al vermoedde, ik heb een probleem met een java programmatie. Mijn uiteindelijke doel is een programma maken dat een cirkel tekent met de eigenschappen die de gebruiker invoert. Ik kan hem starten zonder fouten en alles wat ik tot zo ver af heb werkt naar wens, De cirkels worden nog niet echt toegevoegd aan het scherm maar al wel aan een array.
Mijn probleem is dat de knop pas zichtbaar word als je er overheen gaat. En de JTextField wordt pas zichtbaar als je er op klikt. Hieronder staat de broncode, kopier het maar eens naar een IDE en test het! Als je weet wat het probleem is vertel het me dan aub even.
Main
Circle
MyWindow
DrawCircle
StartFrame
Het zal misschien moeilijk zijn om een beetje de weg te vinden in mijn code, ik ben nog maar een beginner en doe dingen dus niet zo efficiëntie!
Alvast bedankt,
GWigWam
Mijn probleem is dat de knop pas zichtbaar word als je er overheen gaat. En de JTextField wordt pas zichtbaar als je er op klikt. Hieronder staat de broncode, kopier het maar eens naar een IDE en test het! Als je weet wat het probleem is vertel het me dan aub even.
Main
Code:
package circles;
import javax.swing.JFrame;
public class main {
public static void main(String args[]){
System.out.println("Started the program");
StartFrame start = new StartFrame();
start.startframe();
}
}
Code:
package circles;
import java.awt.Graphics;
import javax.swing.*;
public class Circle{
public Circle(int x, int y,int diam){
}
}
Code:
package circles;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.*;
public class MyWindow extends JPanel implements ActionListener{
DrawCircle drawAcircle = new DrawCircle();
int intx;
int inty;
int intdiam;
JButton btnNewCircle = new JButton("New Circle");
JTextField TFx = new JTextField("X-coords");
JTextField TFy = new JTextField("Y-coords");
JTextField TFdiam = new JTextField("Diameter");
public MyWindow(){
btnNewCircle.addActionListener(this);
add(btnNewCircle);
add(TFx);
add(TFy);
add(TFdiam);
}
public void actionPerformed(ActionEvent e) {
System.out.println("Button1 has been clicked");
try{
intx = Integer.parseInt(TFx.getText());
inty = Integer.parseInt(TFy.getText());
intdiam = Integer.parseInt(TFdiam.getText());
}catch(NumberFormatException e1){
System.out.println("Input invallid!");
JOptionPane.showMessageDialog(null, "Input is invalid!");
}
drawAcircle.DrawCircle(intx,inty,intdiam);
}
}
Code:
package circles;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class DrawCircle extends JPanel implements ActionListener{
JPanel p = new JPanel(new BorderLayout());
Circle[] circles = new Circle[64];
int index = 0;
public void paint(Graphics g) {
//zo hoort het: g.fillOval(25, 25, 120, 120);
}
public void DrawCircle(int intx, int inty, int intdiam){
if(intx == 0 || inty == 0 || intdiam == 0){
System.out.println("One of the circle values is zere, action aborted!");
}else{
circles[index] = new Circle(intx, inty, intdiam);
//repaint();
index++;
System.out.println("A new circle has been added! " + "At coords: ("+ intx +"," + inty +") With a diam of: "+intdiam);
}
}
//=========================================================================================
int Rintx;
int Rinty;
int Rintdiam;
JButton btnNewCircle = new JButton("New Circle");
JTextField TFx = new JTextField("X-coords");
JTextField TFy = new JTextField("Y-coords");
JTextField TFdiam = new JTextField("Diameter");
{
btnNewCircle.addActionListener(this);
add(btnNewCircle);
add(TFx);
add(TFy);
add(TFdiam);
}
public void actionPerformed(ActionEvent e) {
System.out.println("Button1 has been clicked");
try{
Rintx = Integer.parseInt(TFx.getText());
Rinty = Integer.parseInt(TFy.getText());
Rintdiam = Integer.parseInt(TFdiam.getText());
}catch(NumberFormatException e1){
System.out.println("Input invallid!");
JOptionPane.showMessageDialog(null, "Input is invalid!");
}
DrawCircle(Rintx,Rinty,Rintdiam);
}
}
Code:
package circles;
import java.awt.Color;
import javax.swing.JFrame;
public class StartFrame extends JFrame{
public void startframe(){
JFrame frame = new JFrame();
//frame.getContentPane().add(new MyWindow());
frame.getContentPane().add(new DrawCircle());
frame.setTitle("Circles");
frame.setBackground(Color.ORANGE);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
System.out.println("Frame started!");
}
}
Het zal misschien moeilijk zijn om een beetje de weg te vinden in mijn code, ik ben nog maar een beginner en doe dingen dus niet zo efficiëntie!
Alvast bedankt,
GWigWam