Java Jframe图像&x2B;文本框
您好,我正在尝试制作一个简单的框架,显示一个图像、一个文本字段和一个按钮,但由于某种原因,文本字段是不可见的,因为我对java甚至这些图形化的东西非常熟悉,您能帮助我吗:) 代码Java Jframe图像&x2B;文本框,java,swing,awt,frame,mixing,Java,Swing,Awt,Frame,Mixing,您好,我正在尝试制作一个简单的框架,显示一个图像、一个文本字段和一个按钮,但由于某种原因,文本字段是不可见的,因为我对java甚至这些图形化的东西非常熟悉,您能帮助我吗:) 代码 它被另一个类实例化。问题是,您在没有调用它的super的情况下重写了paint方法,这意味着它永远没有机会绘制 public void paint(Graphics g){ if(img != null) g.drawImage(img, 100, 100, this); else
它被另一个类实例化。问题是,您在没有调用它的super的情况下重写了paint方法,这意味着它永远没有机会绘制
public void paint(Graphics g){
if(img != null)
g.drawImage(img, 100, 100, this);
else
g.clearRect(0, 0, getSize().width, getSize().height);
}
当使用java.awt.Frame
时,您会发现很难实现所需的功能java.swingx.JFrame
允许您重写paintComponent
方法,该方法允许您绘制组件的背景,但java.awt.Frame
不允许
您还应该避免混合轻重量和重重量组件(我知道,它显然是固定的),但如果可以的话,请避免它。而不是编写
add(textfield,“South”)代码>,我建议编写add(textfield,BorderLayout.SOUTH)代码>这有两个目的:a)它使代码万无一失,因为任何键入错误都会在编译时出现b)它充当一种隐式文档,这意味着它很容易理解。我可以看一看第二个选项,立即知道您使用的是什么LayoutManager以及您对文本字段所做的操作。您没有使用JFrame,而是使用java.awt.Frame,这是一个巨大的差异
public void paint(Graphics g){
if(img != null)
g.drawImage(img, 100, 100, this);
else
g.clearRect(0, 0, getSize().width, getSize().height);
}