Je travaille sur un programme qui dessine une fonction linéaire basée sur les entrées données par l'utilisateur. J'ai réussi à créer une méthode qui dessine la "ligne" (plusieurs points).Java, dessine sur un JPanel spécifique
Comme vous pouvez le voir sur la capture d'écran, il y a de l'espace sur le côté droit. Je voudrais ajouter quelques JButtons, JLabels et JTextFields afin que l'utilisateur puisse entrer les données pour la fonction.
Mais si j'ajoute quelques JButton ou quelques JLabels, ils ne seront pas affichés sur le côté droit. Quelqu'un peut-il m'expliquer la raison de ce comportement? Je vais télécharger le code source de la version sans les JButtons. Merci les gars pour votre aide!
package projekt;
import javax.swing.*;
import java.awt.*;
public class ProjectFunction extends JFrame {
public ProjectFunction() {
setLayout(new BorderLayout());
setSize(1900, 1000);
setTitle("First Test");
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void paint(Graphics g){
g.setColor(new Color(204, 204, 204));
g.drawLine(0, 900, 1000, 900);
g.drawLine(0, 800, 1000, 800);
g.drawLine(0, 700, 1000, 700);
g.drawLine(0, 600, 1000, 600);
g.drawLine(0, 400, 1000, 400);
g.drawLine(0, 300, 1000, 300);
g.drawLine(0, 200, 1000, 200);
g.drawLine(0, 100, 1000, 100);
g.drawLine(100, 0, 100, 1000);
g.drawLine(200, 0, 200, 1000);
g.drawLine(300, 0, 300, 1000);
g.drawLine(400, 0, 400, 1000);
g.drawLine(600, 0, 600, 1000);
g.drawLine(700, 0, 700, 1000);
g.drawLine(800, 0, 800, 1000);
g.drawLine(900, 0, 900, 1000);
g.setColor(Color.BLACK);
g.drawRect(0, 500, 1000, 1);
g.drawRect(500, 0, 1, 1000);
g.setColor(Color.RED);
linear(0.25, 1, g);
g.setColor(Color.BLUE);
linear(-3, -2.5, g);
}
public void linear(double s, double c, Graphics g) {
int Anzpunkte = 0;
c = c * 100;
int x = 500, y = 500 - (int) c;
g.drawOval(x, y, 2, 2);
y = y - (int) s;
double abtrag = s - (int) s;
System.out.println("Punkt X-Achse Y-Achse Abtrag Steigung");
Anzpunkte++;
System.out.println("" + Anzpunkte + " " + x + " " + y + " " + abtrag + " " + s);
while (x < 1000 && y < 1000 && x > 0 && y > 0) {
x++;
g.drawOval(x, y, 2, 2);
Anzpunkte++;
System.out.println("" + Anzpunkte + " " + x + " " + y + " " + abtrag + " " + s);
if (abtrag >= 1 || abtrag <= -1) {
y = y - (int) s;
y = y - (int) abtrag;
abtrag = s - (int) s;
} else {
y = y - (int) s;
abtrag = abtrag + s - (int) s;
}
}
x = 500;
y = 500 - (int) c;
while (x < 1000 && y < 1000 && x > 0 && y > 0) {
x--;
g.drawOval(x, y, 2, 2);
Anzpunkte++;
System.out.println("" + Anzpunkte + " " + x + " " + y + " " + abtrag + " " + s);
if (abtrag >= 1 || abtrag <= -1) {
y = y + (int) s;
y = y + (int) abtrag;
abtrag = s - (int) s;
} else {
y = y + (int) s;
abtrag = abtrag + s - (int) s;
}
}
}
public static void main(String[] args) {
ProjectFunction p = new ProjectFunction();
}
}
Il n'y a pas de code qui ajoute un bouton ou un composant d'étiquette n'importe où dans ce que vous avez posté. –
Bienvenue dans Stack Overflow! Veuillez consulter notre [Liste de questions sur les questions de sécurité] (http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist) pour vous aider à poser une bonne question et obtenir ainsi une bonne réponse. –