2015-05-24 25 views
0

我正在学习如何使用MVC在Java中构建一个表,并且我正在尝试使用一个开关案例,它既对模型中的数据执行更改,也调用像这样的方法如何在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 ""; } 
     } 

任何帮助是极大的赞赏,如果你需要看到更多的代码,以帮助您回答我的问题,我会提供它。

+2

显示您当前的开关代码并解释您遇到的问题。 – hungryghost

+0

看看[关于switch语句的文档](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html),这应该对你有所帮助。 – Timo

+0

@hungryghost我已经添加了开关箱,桌子(car.on)显示了一个人将要上车的位置,car.stops显示了该车的停靠位置。 我试图做甚至可能吗?我仍然在学习一些技巧。 – Mark

回答

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 ""; 
    } 
} 
+0

Thankyou为此。它会产生一个循环,无论如何要在return语句之后休息一下吗? – Mark

+1

返回完全退出该方法,因此返回后,方法内部不会运行任何代码。如果你有递归和/或循环问题,那可能是你的方法之外的东西。 – hungryghost

2

你似乎在不正确的理解下,案件结束在第一个分号。这是不正确的。直到用整体切换语句的大括号结束它们或直到包含中断为止,个案才会结束。在案例和案例结束之间,您可以拥有任意数量的代码行(几乎)任何您想要的。

想象一个开关几乎就像一个函数,其中唯一*退出函数的方法是在结束时到达break语句,return语句或紧接大括号,就像您退出函数一样返回并到达函数的结尾。

switch(condition) { 
    case 1: fcnOne(); 
    case 2: fcnTwoA(); fcnTwoB(); 
    case 3: fcnThree; break; 
    default: fcnFour(); 
} 

如果条件是1,则调用fcnOne()。在fcnOne()中没有中断,所以代码继续进入情况2.这通常称为下降。然后调用fcnTwoA()。代码继续到下一条指令,即调用fcnTwoB()。下一条指令是fcnThree()。最后,我们遇到一个break语句,它退出switch块。


是的,我故意忽略异常,System.exit(),并返回非void函数的值。

+0

这是案例使用的一个很好的例子。如果您想要更复杂的控制流程(例如,情况A为1,2,3;情况B为2,3;情况C仅为3等),则可以省略事件之间的休息/退货。更“基本”的做法是为每个案例设置单个案例代码块(可能还有一个默认案例)。但这更多是“高级”使用。另外,阅读文档。他们非常有帮助! – hungryghost