gpt4 book ai didi

java - 在竞争框中放置文本

转载 作者:行者123 更新时间:2023-11-29 07:50:13 24 4
gpt4 key购买 nike

我在使用 paintComponent 方法将字符串文本放置在我的框架中时遇到了问题。

看起来像这样:

enter image description here

我不知道为什么它不想将字符串放在适当的位置,因为我什至计算过像素。

import java.awt.EventQueue;
import javax.swing.JFrame;

public class FrameMain {

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame = new DrawFrame();
frame.setVisible(true);
}
});

}


public class DrawFrame extends JFrame {

public DrawFrame()
{
setTitle("Frame with a component containing String");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds (100, 100, 300, 300 );
DrawComponent draw = new DrawComponent();
add(draw);

}


public class DrawComponent extends JComponent {

public void paintComponent(Graphics g) {
g.drawString("First string in component located in frame", WIDTH, HEIGHT);

final int WIDTH = 175;
final int HEIGHT = 200;
}

最佳答案

g.drawString("First string in component located in frame", WIDTH, HEIGHT);
//final int WIDTH = 175;
//final int HEIGHT = 200;

切勿在使用后定义变量。 WIDTH 和 HEIGHT 是其他 Swing 类的变量,默认为 0。

final int WIDTH = 175;
final int HEIGHT = 200;
g.drawString("First string in component located in frame", WIDTH, HEIGHT);

编辑:

I want the String to set position given the size of frame, not position of it.

不要进行自定义绘画。使用 JLabel。

JLabel label = new JLabel("centered");
label.setHorizontalAlignment( JLabel.CENTER );
frame.add(label);

关于java - 在竞争框中放置文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21783601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com