字符串大小写转换

rrl_hjd 2016-08-29 12:14:11
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

import org.omg.CORBA.Environment;

import java.util.*;
public class UpperAndLower extends JFrame{
JPanel contentPane;
JTextField textField;
JTextField textField_1;
JRadioButton radioButton;
JRadioButton radioButton_1;
public static void main(String[] args) {
// TODO 自动生成的方法存根
EventQueue.invokeLater(new Runnable() {

@Override
public void run() {
// TODO 自动生成的方法存根
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
UpperAndLower window=new UpperAndLower();
window.setVisible(true);

} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| UnsupportedLookAndFeelException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
});

}
public UpperAndLower()
{
setTitle("字符串大小写转换");
setBounds(100,100,455,215);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
contentPane=new JPanel();
setContentPane(contentPane);
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(null);
textField=new JTextField();
textField.setBounds(35,30,385,30);
textField.setColumns(100);
contentPane.add(textField);
textField_1=new JTextField();
textField_1.setBounds(35,130, 385, 30);
textField_1.setColumns(100);
contentPane.add(textField_1);
radioButton=new JRadioButton();
radioButton.setText("大写");
radioButton.setBounds(170,80,60,30);
radioButton_1=new JRadioButton("小写");
radioButton_1.setBounds(230,80,60,30);
ButtonGroup group=new ButtonGroup();
group.add(radioButton);
group.add(radioButton_1);
radioButton.setSelected(true);

contentPane.add(radioButton);
contentPane.add(radioButton_1);
JButton button=new JButton("转换");
button.setBounds(50,80,80,30);
contentPane.add(button);
button.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// 获取大小写单选项的选择
String command = group.getSelection().getActionCommand();
boolean upper = command.equals("大写");// 判断是否选择的大写单选项
String text = textField.getText();// 获取输入字符串
if (upper) {// 大写转换
textField_1.setText(text.toUpperCase());
} else {// 小写转换
textField_1.setText(text.toLowerCase());
}
}
});
}

}
运行后报错信息如下,高手帮忙看看问题在哪??
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at com.liubing.UpperAndLower$2.actionPerformed(UpperAndLower.java:75)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
...全文
369 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_25914321 2016-08-30
  • 打赏
  • 举报
回复
加空值判断啊
rrl_hjd 2016-08-30
  • 打赏
  • 举报
回复
那应该怎么修改呢??请指教
静默QL 2016-08-30
  • 打赏
  • 举报
回复
上面第二个if 有点问题,应该是radioButton_1 写错了。。
静默QL 2016-08-30
  • 打赏
  • 举报
回复
首先,楼主代码有问题,对于局部内部类来说,ButtonGroup 必须加上final关键字,如果楼主JDK版本比较高的话则没有这个问题,默认会加final. 然后,楼主,你所调用的方法String command = group.getSelection().getActionCommand()。可以改为
 // 获取大小写单选项的选择
 String command = "";
 if(radioButton.isSelected()){
 	command = radioButton.getText();
 }
 if(radioButton_1 .isSelected()){
 command = radioButton.getText();
}
System.out.println("----------------------"+command);
codingjav 2016-08-30
  • 打赏
  • 举报
回复
对于异常处理下就行了
sean_0xiao 2016-08-29
  • 打赏
  • 举报
回复
问题出在这里: // 获取大小写单选项的选择 String command = group.getSelection().getActionCommand(); command的值为null,然后再与"大写"两个比较,就出现了空指针异常!
nikyotensai 2016-08-29
  • 打赏
  • 举报
回复
引用 1 楼 sean_0xiao 的回复:
问题出在这里: // 获取大小写单选项的选择 String command = group.getSelection().getActionCommand(); command的值为null,然后再与"大写"两个比较,就出现了空指针异常!

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧