我正在学习如何使用MVC在Java中构建一个表,我正在尝试一个切换案例,它既可以对模型中的数据执行更改,也可以调用这样的方法
public void update()
{ model.fireTableDataChanged(); }
更新表格中显示的数据。
这是开关案例
public Object getValueAt(int row, int col)
{ switch(col)
{ case 0: return row;
case 1: return car.on(car.stops());
default: return ""; }
}
非常感谢任何帮助,如果您需要查看更多代码来帮助您回答我的问题,我会提供。
答案 0 :(得分:2)
你似乎对错误的理解认为案件在第一个分号结束。这是不正确的。案例不会结束,直到你用整个开关语句的闭括号结束它们,或直到你包括休息时间。在案例和案例结束之间,您可以拥有任意数量的代码行(几乎可以)。(/ p>
将开关想象成一个函数,其中退出函数的唯一方法是到达break语句,return语句或最后的close括号,这与退出函数返回的方式完全相同并到达功能的最后。
Imports System.Data.OleDb
Module Module1
Public acsconn As New OleDb.OleDbConnection
Public acsdr As OleDbDataReader
Public strsql As String
Sub connect()
acsconn.ConnectionString = "Provider=Microsoft.ace.oledb.12.0;data source=|datadirectory|\Base1.accdb;"
acsconn.Open()
End Sub
End Module
如果条件为1,则调用fcnOne()。 fcnOne()没有中断,因此代码继续进入案例2.这通常被称为通过。然后调用fcnTwoA()。代码继续执行下一条指令,即调用fcnTwoB()。下一条指令是fcnThree()。最后,我们遇到了一个break语句,它退出了switch块。
是的,我故意忽略异常,System.exit(),并返回非void函数的值。
答案 1 :(得分:1)
我的代码格式不同。希望它能够更容易理解多个语句。尝试这样的事情:
public Object getValueAt(int row, int col) {
switch(col) {
case 0:
// You can add any number of statements here.
...
update();
return row;
case 1:
...
update();
return car.on(car.stops());
default:
...
update();
return "";
}
}