新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
看一下你的程序片段:
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站建设、颍州网络推广、小程序制作、颍州网络营销、颍州企业策划、颍州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供颍州建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
private class TFListener implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
String str = tfTxt.getText().trim();
taContent.setText(str);
tfTxt.setText("");
try {
System.out.println(s);
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
控制台输出的第一行 null 就是 System.out.println(s); 的结果。
而执行下面这行:
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
后,一定报错,因为类 ChatClient 的属性 Socket s 没有初始化。
建议将类 ChatClient 的 main 方法修改成:
public static void main(String[] args) {
new ChatClient().launchFrame();
connect() ;
}
Exception2
finally
分析:
首先NullPointerException被catch(Exception e1)捕获,打印Exception2,因为有finally,最终还会执行finally中的代码。
注意:
IOException不是运行期异常,方法显示抛出,所以,你的run方法肯定要抛出IOException,否则编译通不过。
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.sql.*;
import java.util.*;
public class TestJTable extends JFrame {
JTable table;
DefaultTableModel model;
VectorString v1 = new VectorString();//需要实例化,估计你那报空的应该就是这里了
Connection conn;
Statement st;
ResultSet rs;
TestJTable() throws NullPointerException {
Container con = getContentPane();//布局panel
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;DatabaseName=Teststudent",
"sa", "");
st = conn.createStatement();
rs = st.executeQuery("select * from Sc");
ResultSetMetaData rsmd = rs.getMetaData();
int bb = rsmd.getColumnCount();
System.out.println(bb);
// rs.next();
for (int i = 0; i rsmd.getColumnCount(); i++) {
v1.addElement(rsmd.getColumnName(i + 1));
}
model = new DefaultTableModel(null, v1);
table = new JTable(model);
getInfo();
JScrollPane jp1 = new JScrollPane(table);
con.add(jp1);
setSize(500, 400);
setVisible(true);
rs.close();
st.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
void getInfo() {
model.setRowCount(0);
try {
// rs.beforeFirst();
VectorString v2;
while (rs.next()) {
v2 = new VectorString();//需要在这里进行实例化,否则只能得到同一个vector
for (int i = 1; i = v1.size(); i++) {
v2.addElement(rs.getString(i));
}
//v2填充完毕之后再放入model中,否则会得到column * row行数据,并且只有一列
model.addRow(v2);
}
} catch (Exception e) {
e.printStackTrace();
}
model.fireTableStructureChanged();
}
public static void main(String[] args) {
new TestJTable();
}
}
给你改了几个地方,已经加上注释了,程序运行正常
我看了你的程序,帮你改完了,主要改了getMax函数,你看看吧。
完整的程序如下:
public class dd {
public static void main(String[] args) {
OperaNode op = new OperaNode();
op.addToHead(1);
op.addToHead(2);
op.addToHead(3);
op.addToHead(5);
op.printAll();
op.getMax();
}
}
class Node {
public int data;
public Node next;
public Node(){}
public Node(int i) {
data=i;
next=null;
}
public Node(int i, Node n) {
data = i;
next = n;
}
}
//链表类
class OperaNode {
public int max;
public Node head, tail;
public OperaNode() {
head = tail = null;
}
// 判断链表是否为空
public boolean isEntry() {
if (head == null) {
return true;
} else {
return false;
}
}
// 在链表的头部添加数据
public void addToHead(int l) {
head = new Node(l, head);
if (tail == null) {
tail = head;
}
}
public void printAll() {
Node temp;
for (temp = head; temp != null ; temp = temp.next) {
System.out.println(temp.data);
}
}
public void getMax(){
Node temp =null;
Node tmp =head;
for (temp = head; temp != null ; temp = temp.next){
if(tmp.datatemp.data){
tmp.data=temp.data;
}
//head = head.next;
}
System.out.println(tmp.data);
}
}
运行结果:
5
3
2
1
5