关于JTable单元格中输入中文,系统就报NullPointerException异常。输入英文就没事? 我用JTable显示数据,需要修改/添加的时候,直接在JTable的单元格输入数据。输入英文可以操作成功,但是一输入中文就报空指针异常NullPointerException,请问怎么解决这个问题? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /** * */package com.stock.gui;import java.awt.Color;import java.awt.Font;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.SQLException;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import com.stock.dto.P_managerDTO;import com.stock.model.Database;/** * @author Antti King * */class AddStock extends JFrame implements ActionListener { /** * 添加股票窗口 */ private JPanel pAddStock; private JLabel lAddStock; private JButton bAddStock; private JTable tAddStock; private JScrollPane jScrollPane_addStock; public AddStock() { // TODO Auto-generated constructor stub // 添加股票面板 lAddStock = new JLabel("在下表输入股票信息"); lAddStock.setFont(new Font(null, Font.BOLD, 18)); bAddStock = new JButton("添 加"); bAddStock.addActionListener(this); tAddStock = new JTable(new DefaultTableModel(new String[] { "股票名称", "股票代码", "发行公司", "单股价格", "上市时间", "发行总数" }, 1)); jScrollPane_addStock = new JScrollPane(); tAddStock.setBackground(Color.BLACK); tAddStock.setForeground(Color.YELLOW); tAddStock.setGridColor(Color.RED); jScrollPane_addStock.getViewport().add(tAddStock); pAddStock = new JPanel(); pAddStock.add(lAddStock); pAddStock.add(jScrollPane_addStock); pAddStock.add(bAddStock); // 设置面板布局 pAddStock.setLayout(null); lAddStock.setBounds(200, 20, 180, 40); jScrollPane_addStock.setBounds(20, 100, 560, 100); bAddStock.setBounds(260, 240, 80, 30); this.add(pAddStock); this.setTitle("添加股票"); this.setSize(600, 360); int x = ((Toolkit.getDefaultToolkit().getScreenSize().width - this .getSize().width) / 2); int y = ((Toolkit.getDefaultToolkit().getScreenSize().height - this .getSize().height) / 2); this.setLocation(x, y); this.setResizable(false); this.setVisible(true); } /** * @param args */ public void actionPerformed(ActionEvent ae) { // TODO Auto-generated method stub if (ae.getSource() == bAddStock) { /* * byte[] stocknameByte; String stockname = ""; byte[] stockidByte; * String stockid = ""; byte[] companyByte; String company = ""; * byte[] singlepriceByte; String singleprice = ""; byte[] * ontimeByte; String ontime = ""; byte[] allcountByte; String * allcount = ""; * * try { stocknameByte = (((String)tAddStock.getValueAt(0, * 0)).getBytes("gb2312")); stockname = stocknameByte.toString(); * stockidByte = (((String)tAddStock.getValueAt(0, * 1)).getBytes("gb2312")); stockid = stockidByte.toString(); * companyByte = (((String)tAddStock.getValueAt(0, * 2)).getBytes("gb2312")); company = companyByte.toString(); * singlepriceByte = (((String)tAddStock.getValueAt(0, * 3)).getBytes("gb2312")); singleprice = * singlepriceByte.toString(); ontimeByte = * (((String)tAddStock.getValueAt(0, 4)).getBytes("gb2312")); ontime = * ontimeByte.toString(); allcountByte = * (((String)tAddStock.getValueAt(0, 5)).getBytes("gb2312")); * allcount = allcountByte.toString(); } catch * (UnsupportedEncodingException e1) { * e1.printStackTrace(); } */ String stockname = (String) tAddStock.getValueAt(0, 0); String stockid = (String) tAddStock.getValueAt(0, 1); String company = (String) tAddStock.getValueAt(0, 2); String singleprice = (String) tAddStock.getValueAt(0, 3); String ontime = (String) tAddStock.getValueAt(0, 4); String allcount = (String) tAddStock.getValueAt(0, 5); if (stockname == null || stockname.equals("") || stockid == null || stockid.equals("") || company == null || company.equals("") || singleprice == null || singleprice.equals("") || ontime == null || ontime.equals("") || allcount == null || allcount.equals("")) { JOptionPane.showMessageDialog(null, "表中各项值不能为空!"); } else { P_managerDTO mdto = new P_managerDTO(); mdto.setStockName(stockname); mdto.setStockId(stockid); mdto.setCompany(company); mdto.setSinglePrice(Float.parseFloat(singleprice)); mdto.setOnTime(ontime); mdto.setAllCount(Integer.parseInt(allcount)); try { String str = new Database().addstock(mdto); JOptionPane.showMessageDialog(null, str); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } } }}注意绿色被注释掉部分是换了另外一种方法,还是没通过。 现在吧JDK改成1.6,可以正常运行了。不知道各位有没有更好的方法,在不改JDK版本的情况下,解决这个问题! try-finally问题 求高手解答 类似CSDN的引用回复功能 java如何实现c结构体的对齐? 下学期要学JAVA了 图形界面显示问题,谢谢! int a = 0xf4240?这句话数值到底是多少?0xf是什么东西? 请问,谁有JBuilder7下,用commAPI开发串口通讯的例子 请教高手:如何实现一个java程序,该程序具备光盘自启动功能,所有需要的jdk包都在光盘上,在机器上不安装jdk,不知道如何实现,是否只能 是高手就进来!!(在线等待,高分相赠!) java api 也是类库中的一部分。对否? 怎么用poi操作excel啊? [请教]编个十点半游戏的程序.
*
*/
package com.stock.gui;import java.awt.Color;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;import com.stock.dto.P_managerDTO;
import com.stock.model.Database;/**
* @author Antti King
*
*/
class AddStock extends JFrame implements ActionListener { /**
* 添加股票窗口
*/ private JPanel pAddStock;
private JLabel lAddStock;
private JButton bAddStock;
private JTable tAddStock;
private JScrollPane jScrollPane_addStock; public AddStock() {
// TODO Auto-generated constructor stub // 添加股票面板
lAddStock = new JLabel("在下表输入股票信息");
lAddStock.setFont(new Font(null, Font.BOLD, 18));
bAddStock = new JButton("添 加");
bAddStock.addActionListener(this); tAddStock = new JTable(new DefaultTableModel(new String[] { "股票名称",
"股票代码", "发行公司", "单股价格", "上市时间", "发行总数" }, 1));
jScrollPane_addStock = new JScrollPane();
tAddStock.setBackground(Color.BLACK);
tAddStock.setForeground(Color.YELLOW);
tAddStock.setGridColor(Color.RED);
jScrollPane_addStock.getViewport().add(tAddStock); pAddStock = new JPanel();
pAddStock.add(lAddStock);
pAddStock.add(jScrollPane_addStock);
pAddStock.add(bAddStock); // 设置面板布局 pAddStock.setLayout(null);
lAddStock.setBounds(200, 20, 180, 40);
jScrollPane_addStock.setBounds(20, 100, 560, 100);
bAddStock.setBounds(260, 240, 80, 30); this.add(pAddStock);
this.setTitle("添加股票");
this.setSize(600, 360);
int x = ((Toolkit.getDefaultToolkit().getScreenSize().width - this
.getSize().width) / 2);
int y = ((Toolkit.getDefaultToolkit().getScreenSize().height - this
.getSize().height) / 2);
this.setLocation(x, y);
this.setResizable(false);
this.setVisible(true);
} /**
* @param args
*/ public void actionPerformed(ActionEvent ae) {
// TODO Auto-generated method stub
if (ae.getSource() == bAddStock) { /*
* byte[] stocknameByte; String stockname = ""; byte[] stockidByte;
* String stockid = ""; byte[] companyByte; String company = "";
* byte[] singlepriceByte; String singleprice = ""; byte[]
* ontimeByte; String ontime = ""; byte[] allcountByte; String
* allcount = "";
*
* try { stocknameByte = (((String)tAddStock.getValueAt(0,
* 0)).getBytes("gb2312")); stockname = stocknameByte.toString();
* stockidByte = (((String)tAddStock.getValueAt(0,
* 1)).getBytes("gb2312")); stockid = stockidByte.toString();
* companyByte = (((String)tAddStock.getValueAt(0,
* 2)).getBytes("gb2312")); company = companyByte.toString();
* singlepriceByte = (((String)tAddStock.getValueAt(0,
* 3)).getBytes("gb2312")); singleprice =
* singlepriceByte.toString(); ontimeByte =
* (((String)tAddStock.getValueAt(0, 4)).getBytes("gb2312")); ontime =
* ontimeByte.toString(); allcountByte =
* (((String)tAddStock.getValueAt(0, 5)).getBytes("gb2312"));
* allcount = allcountByte.toString(); } catch
* (UnsupportedEncodingException e1) {
* e1.printStackTrace(); }
*/
String stockname = (String) tAddStock.getValueAt(0, 0);
String stockid = (String) tAddStock.getValueAt(0, 1);
String company = (String) tAddStock.getValueAt(0, 2);
String singleprice = (String) tAddStock.getValueAt(0, 3);
String ontime = (String) tAddStock.getValueAt(0, 4);
String allcount = (String) tAddStock.getValueAt(0, 5); if (stockname == null || stockname.equals("") || stockid == null
|| stockid.equals("") || company == null
|| company.equals("") || singleprice == null
|| singleprice.equals("") || ontime == null
|| ontime.equals("") || allcount == null
|| allcount.equals("")) { JOptionPane.showMessageDialog(null, "表中各项值不能为空!"); } else {
P_managerDTO mdto = new P_managerDTO();
mdto.setStockName(stockname);
mdto.setStockId(stockid);
mdto.setCompany(company);
mdto.setSinglePrice(Float.parseFloat(singleprice));
mdto.setOnTime(ontime);
mdto.setAllCount(Integer.parseInt(allcount));
try {
String str = new Database().addstock(mdto);
JOptionPane.showMessageDialog(null, str);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
}
}
注意绿色被注释掉部分是换了另外一种方法,还是没通过。 现在吧JDK改成1.6,可以正常运行了。不知道各位有没有更好的方法,在不改JDK版本的情况下,解决这个问题!