我真的无法弄清楚我做错了什么 - Option1代码只显示一个白色空文本字段而选项2只是说它没有初始化...我真的可以使用一些指导。提前致谢
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Option1 extends JApplet implements ActionListener {
private int click = 0;
public Option1() {
JFrame base = new JFrame ("Button Click Counter");
base.getContentPane().setLayout(null);
base.setSize(500,500);
base.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("Click Me!");
button.addActionListener(this);
JTextField count = new JTextField(click);
this.add(button);
this.add(count);
}
@Override
public void actionPerformed (ActionEvent e) {
click++; }
}
和另一个
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class Option2 extends JApplet implements MouseListener {
double x;
double y;
public void init() {
addMouseListener(this);
JFrame base = new JFrame("Mouse Coordinates");
base.getContentPane().setLayout(null);
base.setSize(500,500);
base.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField answer = new JTextField(x + "," + y);
}
@Override
public void mouseClicked( MouseEvent e ) {
x = e.getX();
y = e.getY();
this.setBackground(new Color((int)(Math.random() * 0x1000000)));
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
}
另外,如果有人可以提供关于如何通过鼠标点击将背景更改为随机颜色的建议(如在Option2中尝试的那样),那就太棒了。谢谢!
答案 0 :(得分:1)
JApplet
默认情况下使用BorderLayout
,您只能在北,南,东,西和中心的每个部分添加一个组件。如果在同一部分中添加另一个组件,则先前的组件将被新添加的组件替换。
使用重载的add()
方法将其添加到不同的部分。
例如:
this.add(button, BorderLayout.SOUTH);
this.add(count); // added in CENTER by default
最好使用JPanel
。在其中添加组件,最后在JPanel
中添加JApplet
。
绝不使用null
布局。设计了很多布局管理器。