当我将它放入paint(Graphics2d g)方法时,Jlabel没有出现,我无法弄清楚原因。
我的课文:
import java.awt.Color;
import java.awt.Graphics2D;
import javax.swing.JLabel;
public class Text {
int ballX,ballY,squareX,squareY;
Text text;
private Game game;
private Ball ball;
private Racquet racquet;
public void main(){
ballX = ball.getBallX();
ballY = ball.getBallY();
squareX = racquet.getSquareX();
squareY = racquet.getSquareY();
}
public void paint(Graphics2D g) {
g.setColor(Color.red);
JLabel balltext = new JLabel("the ball is at " + ballX + ballY);
balltext.setVisible(true);
g.setColor(Color.green);
JLabel squaretext = new JLabel("the ball is at " + squareX + squareY);
squaretext.setVisible(true);
}
}
答案 0 :(得分:2)
您的代码有一些不太恰当的地方。
首先,Text
不会延伸到任何可绘制的内容,因此永远不会调用paint
。无论如何,公约倾向于覆盖paintComponent
的Swing组件。
此外,您应该始终致电super.paintXxx
,这首先会突出显示问题。
其次,组件通常会添加到某种容器中,这些容器会为您绘制它们。
如果您想在程序中使用Swing组件,我建议您查看Creating a GUI With JFC/Swing。
如果你想绘制文字,我建议你看看2D Graphics,特别是Working with Text APIs
有关您正在尝试实现的目标的更多信息也可能有所帮助
另外,我不确定这是否有意,但public void main(){
不能作为该计划的主要切入点,它应该是public static void main(String args[])
,但你可能只是使用main
作为从其他地方调用该类的方法;)
答案 1 :(得分:1)
从你看来,你会遗漏一些Java Swing gui的范例/习语。
例如:
我建议首先看一些例子,以获得导向:
http://zetcode.com/tutorials/javaswingtutorial/firstprograms/