一般来说,我是 Java 和 OOPS 的初学者。我正在学习 Head First Java 以开始,并研究其中的 GUI 和 Swing 概念。以下代码仅用于理解目的。
运行代码时,框架窗口显示为按钮,当我展开它时,我也可以看到单选按钮。
问题-
- 按钮工作直到窗口大小不超过按钮大小。一旦我增加窗口大小甚至比按钮的尺寸略大,那么只有当光标位于按钮上时才会显示按钮。
我正在使用鼠标更改窗口大小。
即使我将帧大小设置为大于按钮。说 frame.setSize(800,800); 然后按钮覆盖整个 contentPane。并且在调整大小时仍然表现相同。
无论我在 contentPane 中单击的位置如何,按钮都会响应单击鼠标。只有当我直接点击按钮时它才会响应。
请告诉我为什么它会这样。
如果可能,更正代码或添加以更正此问题。
import java.awt.Color;
import javax.swing.*;
import java.awt.event.*;
public class Test1 implements ActionListener {
JFrame frame = new JFrame("Frame");
JButton button = new JButton("Button!");
JRadioButton radio = new JRadioButton("VideoKilledTheRadioStar!",true);
int j=0;
public static void main(String[] args) {
Test1 t = new Test1();
t.method1();
}
public void method1()
{
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button.setSize(100,100);
button.setBackground(Color.ORANGE);
frame.add(button);
frame.setSize(100,100);
frame.setVisible(true);
button.addActionListener(this);
frame.getContentPane().add(radio);
radio.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{j++;
button.setText("clicked .. " + j);
if(button.getBackground()==Color.ORANGE)
button.setBackground(Color.BLUE);
else
button.setBackground(Color.ORANGE);
}
}
PS我不知道哪段代码对这个问题更重要或更相关,所以我放了完整的代码。