J'ai un problème que je ne peux pas comprendre pour la vie de moi. Je demande la saisie de l'utilisateur et puis il fait un JFrame et montre le mot. Je veux afficher le mot à (0,0) mais cela semble être hors du champ, et écrire dans le haut où le titre est. Voici mon code:Réglage drawString donc (0,0) est à l'intérieur de la zone de tirage
import java.util.Scanner;
import javax.swing.*;
public MainWindow(String input){
JFrame frame = new JFrame();
frame.setSize(320, 240);
frame.setTitle("Draw String Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Text text = new Text(input);
frame.add(text);
frame.setVisible(true);
}
Scanner sc = new Scanner(System.in);
System.out.print("Enter a string: ");
String input = sc.nextLine();
new MainWindow(input);
}
}
Puis dans ma classe de texte:
import java.awt.*;
import javax.swing.JComponent;
public class Text extends JComponent {
String text;
public Text(String txt){
this.text = txt;
}
public void paintComponent(Graphics g){
Graphics2D g2d = (Graphics2D) g;
g2d.drawString(this.text, 0, 5);
}
}
Donc, si vous exécutez cela, vous verrez la moitié inférieure, par exemple, bonjour.
si je mis
this.text, 10, 10
alors vous pouvez voir le mot entier.
Y a-t-il un moyen de faire (0,0) commencer dans le coin le plus à gauche et d'avoir le texte complètement à l'intérieur de la zone de tirage actuelle?