这是我第一次搞乱JApplet ..我正在尝试使这个JTextField()正常工作......但无论我做什么我都不能让它出现在页面上!
import java.awt.*;
import javax.swing.*;
public class Hangman extends JApplet{
private static final long serialVersionUID = -3966472303224962681L;
public void paint(Graphics g){
super.paint(g);
Container c = getContentPane();
JTextField input = new JTextField(20);
c.setBackground(Color.BLACK);
g.setColor(Color.WHITE);
g.setFont(new Font("Arial", Font.BOLD, 30));
g.drawString("Welcome to the Hagman Applet for the Web!", 20, 30);
g.setFont(new Font("Arial", Font.ITALIC, 18));
g.drawString("also available on android.", 20, 50);
c.add(input);
input.getText();
}
}
答案 0 :(得分:1)
您不应在“paint”方法中向applet添加组件。这样做。在构造函数中:
public Hangman() {
Container c = getContentPane();
c.setBackground(Color.BLACK);
JTextField input = new JTextField(20);
c.setLayout(new BorderLayout());
c.add(input, BorderLayout.SOUTH);
}
答案 1 :(得分:0)
查找JApplet上的教程(链接到javadoc)。 它与JFrame没有区别。
您可以调用setLayout(...)
作为布局管理器,或setLayout(null)
进行绝对定位(需要定位所有组件,如JTextField)。
您可以将组件添加到getContentPane()
。
有四种可覆盖的终身功能:init, start, stop, destroy
。 (您可能忽略了它们,因为它们是在基类Applet中定义的。)因此,例如将所有代码放在start
中。忘掉paint
。 (重新绘制可能会定期发生!)
使用JLabel作为静态文本,也可以是JButton。