小编Dan*_* S.的帖子

尽管InterruptedException,程序仍继续运行

我开始学习java,现在我正处于并发章节.在阅读了一些关于并发的内容后,我尝试了一个自己的例子.

public class Task implements Runnable{

public void run() {
    while(!Thread.interrupted()) {
        try {
            System.out.println("task");
            TimeUnit.SECONDS.sleep(2);
        }catch (InterruptedException e) {
            System.out.println("interrupted");
        }
    }
}

}

public static void main(String[] args) throws Exception {
    ExecutorService exec = Executors.newCachedThreadPool();
    exec.execute(new Task());
    TimeUnit.SECONDS.sleep(10);
    exec.shutdownNow();
}
Run Code Online (Sandbox Code Playgroud)

问题是我期待看到以下输出:

task
task
task
task
task
interrupted
Run Code Online (Sandbox Code Playgroud)

但是在我得到这个之后,程序会继续打印,直到我关闭它.
所以,我的问题是我做错了什么?为什么程序继续打印?

java concurrency multithreading executor

6
推荐指数
2
解决办法
287
查看次数

类文件:构造函数

我有一个关于File类的简单问题.在一个例子中我看到:
File path = new File(".");
我不明白什么是"." 手段.它引用的目录是什么?

java file

0
推荐指数
1
解决办法
800
查看次数

使用AbstractTableModel时不显示列名称

HY.我正在尝试使用AbstractTableModel构建一个简单的JTable,但即使我使用了JScrollPane,列名也不会出现.

public class TableModel extends AbstractTableModel{
private String[] columnNames = new String[]{"#","Name","Price","Quantity","Description"};

public TableModel() {
    super();
    System.out.println("constructor");

}

public int getColumnCount() {
    return 0;
}

public int getRowCount() {
    return 0;
}

public Object getValueAt(int rowIndex, int columnIndex) {
    return null;
}

public String getColumnName(int columnIndex) {
    System.out.println("in");
    return columnNames[columnIndex];
}

}
Run Code Online (Sandbox Code Playgroud)

我按以下方式将表格放在JPanel上:

table = new JTable(new TableModel());
add(new JScrollPane(table));
Run Code Online (Sandbox Code Playgroud)

不调用方法getColumnName.为什么?

java swing jtable abstracttablemodel

0
推荐指数
1
解决办法
2872
查看次数