我开始学习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)
但是在我得到这个之后,程序会继续打印,直到我关闭它.
所以,我的问题是我做错了什么?为什么程序继续打印?
我有一个关于File类的简单问题.在一个例子中我看到:
File path = new File(".");
我不明白什么是"." 手段.它引用的目录是什么?
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.为什么?