import javax.swing.*; import java.awt.*; import java.awt.event.*; //import java.awt.event.ActionEvent; //import java.awt.event.ActionListener; public class JRadionButton_Exercise { public static void main(String[] args) { //首先创建一个面板 JFrame jf=new JFrame("JRadionButton"); jf.setLayout(new BorderLayout()); jf.setSize(300,200); jf.setVisible(true); jf.setLocation(300,200); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //创建标签文字 JLabel label=new JLabel("Hello WOrld!",Label.CENTER); label.setFont(new Font("宋体",Font.PLAIN,30)); //创建管理单选的组 JPanel panel=new JPanel(); ButtonGroup group=new ButtonGroup(); //设置单选组 JRadioButton italic=new JRadioButton("ITALIC"); JRadioButton bold=new JRadioButton("BOLD"); //将组件添加到单选组 group.add(italic); group.add(bold); //设置监视器 ActionListener listener=new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int mode=0; if(bold.isSelected()) { mode+=Font.BOLD; } if(italic.isSelected()) { mode+=Font.ITALIC; } label.setFont(new Font("宋体",mode,30)); } }; //添加监视器 italic.add(listener); bold.add(listener) panel.add(bold); panel.add(italic); jf.add(label,BorderLayout.PAGE_START); jf.add(panel,BorderLayout.PAGE_END); } }为什么报错
时间: 2024-02-14 13:09:12 浏览: 246
这段代码存在两个问题:
1. 在设置监视器时,应该将监听器对象添加到单选按钮上,而不是将单选按钮添加到监听器上。应该将下面两行代码:
```
//添加监视器
italic.add(listener);
bold.add(listener)
```
改为:
```
//添加监视器
italic.addActionListener(listener);
bold.addActionListener(listener);
```
2. 在创建面板后应该立即设置可见性。将下面这行代码:
```
jf.setVisible(true);
```
移动到创建面板的下面即可。
相关问题
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Random;
看起来你在使用 Java 语言编写 GUI 程序,导入了一些必要的包和类。其中,javax.swing 包提供了 GUI 组件,java.awt 包提供了 GUI 组件的基础类和布局管理器。此外,你还导入了 java.awt.event 包,用于处理 GUI 组件的事件。其中,ActionListener 和 KeyListener 是两个常用的事件监听器,分别用于处理按钮点击事件和键盘输入事件。最后,你还导入了 java.util.Random 类,用于生成随机数。
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.Ac
这是Java Swing库中的几个重要导入语句。`javax.swing.*` 引入了Swing组件和相关的GUI框架,它是Java GUI工具包的一部分,用于构建图形用户界面。`java.awt.*` 包含了Java基础图形用户界面组件以及窗口管理、颜色处理、事件模型等基础知识。
`ActionEvent` 和 `ActionListener` 的导入则是关于Swing中的响应式编程。`ActionEvent` 是当某个动作事件发生时传递给监听器的对象,比如按钮点击或菜单项选择。`ActionListener` 接口定义了对这些事件的处理方法,你需要实现这个接口并在适当的地方添加到组件上,以便响应用户的操作并执行相应的功能。
例如,你在创建一个JButton按钮,并希望在点击时执行一些定制的操作,会这样做:
```java
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
JButton button = new JButton("点击我");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 当按钮被点击时,这里将执行的代码
System.out.println("Button clicked!");
}
});
```
阅读全文
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)