valores valor usar una sirve settitle seleccionar seleccionada que para obtener los getselectedrow fila desde datos como codigo celda java switch-statement

java - valor - seleccionar una fila de un jtable desde codigo



Usando dos valores para una declaraciĆ³n de caso de cambio (10)

En mi código, el programa hace algo dependiendo del texto introducido por el usuario. Mi código se ve como:

switch (name) { case text1: { //blah break; } case text2: { //blah break; } case text3: { //blah break; } case text4: { //blah break; }

Sin embargo, el código dentro de los casos text4 y text4 es el mismo. Por lo tanto, me preguntaba si sería posible para mí implementar algo como

case text1||text4: { //blah break; }

Sé que el || El operador no funcionará en la declaración del caso, pero ¿hay algo similar que pueda usar?


Caer a través del enfoque es el mejor que siento.

case text1: case text4: { //Yada yada break; }


Con la integración de JEP 325: Switch Expressions (Preview) en las compilaciones de acceso temprano JDK-12, ahora se puede hacer uso de la nueva forma de la etiqueta del switch como:

case text1, text4 -> { //blah }

o para reformular la demostración de una de las respuestas , algo como:

public class RephraseDemo { public static void main(String[] args) { int month = 9; int year = 2018; int numDays = 0; switch (month) { case 1, 3, 5, 7, 8, 10, 12 ->{ numDays = 31; } case 4, 6, 9, 11 ->{ numDays = 30; } case 2 ->{ if (((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0)) numDays = 29; else numDays = 28; } default ->{ System.out.println("Invalid month."); } } System.out.println("Number of Days = " + numDays); } }


Las respuestas fallthrough de otros son buenas.

Sin embargo, otro enfoque sería extraer métodos del contenido de las declaraciones de su caso y luego llamar al método apropiado de cada caso.

En el ejemplo a continuación, tanto el caso ''texto1'' como el caso ''texto4'' se comportan de la misma manera:

switch (name) { case text1: { method1(); break; } case text2: { method2(); break; } case text3: { method3(); break; } case text4: { method1(); break; }

Personalmente, este estilo de escritura de declaraciones de casos es más fácil de mantener y un poco más legible, especialmente cuando los métodos a los que llama tienen buenos nombres descriptivos.


Los paréntesis son innecesarios. Solo haz

case text1: case text4: doSomethingHere(); break; case text2: doSomethingElse() break;

Si alguien es curioso, esto se llama un caso fallido. La capacidad de hacer esto es la razón por la cual se break; Es necesario poner fin a las declaraciones del caso. Para obtener más información, consulte el artículo de wikipedia http://en.wikipedia.org/wiki/Switch_statement .


Los valores de case son solo puntos "goto" sin código que pueden compartir el mismo punto de entrada:

case text1: case text4: //blah break;

Tenga en cuenta que las llaves son redundantes.


Los valores de caso son solo puntos "goto" sin código que pueden compartir el mismo punto de entrada:

caso text1:
caso text4: {
//Hacer algo
descanso;
}

Tenga en cuenta que las llaves son redundantes.


Puede utilizar tener ambas declaraciones CASE siguiente manera.

case text1: case text4:{ //blah break; }

VEA ESTE EJEMPLO: el ejemplo de código calcula el número de días en un mes en particular:

class SwitchDemo { public static void main(String[] args) { int month = 2; int year = 2000; int numDays = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: numDays = 31; break; case 4: case 6: case 9: case 11: numDays = 30; break; case 2: if (((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0)) numDays = 29; else numDays = 28; break; default: System.out.println("Invalid month."); break; } System.out.println("Number of Days = " + numDays); } }

Esta es la salida del código:

Number of Days = 29

CAER A TRAVÉS:

Otro punto de interés es la declaración de ruptura. Cada instrucción de interrupción termina la instrucción de conmutación adjunta. El flujo de control continúa con la primera declaración que sigue al bloque de conmutación. Las sentencias de ruptura son necesarias porque sin ellas, las sentencias en bloques de conmutación no coinciden: todas las sentencias después de la etiqueta de caso coincidente se ejecutan en secuencia, independientemente de la expresión de las etiquetas de caja subsiguientes, hasta que se encuentra una sentencia de ruptura.

CÓDIGO EJEMPLO:

public class SwitchFallThrough { public static void main(String[] args) { java.util.ArrayList<String> futureMonths = new java.util.ArrayList<String>(); int month = 8; switch (month) { case 1: futureMonths.add("January"); case 2: futureMonths.add("February"); case 3: futureMonths.add("March"); case 4: futureMonths.add("April"); case 5: futureMonths.add("May"); case 6: futureMonths.add("June"); case 7: futureMonths.add("July"); case 8: futureMonths.add("August"); case 9: futureMonths.add("September"); case 10: futureMonths.add("October"); case 11: futureMonths.add("November"); case 12: futureMonths.add("December"); default: break; } if (futureMonths.isEmpty()) { System.out.println("Invalid month number"); } else { for (String monthName : futureMonths) { System.out.println(monthName); } } } }

Esta es la salida del código:

August September October November December

Usando cadenas en declaraciones de switch

En Java SE 7 y versiones posteriores, puede usar un objeto String en la expresión de la instrucción switch. El siguiente ejemplo de código,, muestra el número del mes según el valor del mes denominado String:

public class StringSwitchDemo { public static int getMonthNumber(String month) { int monthNumber = 0; if (month == null) { return monthNumber; } switch (month.toLowerCase()) { case "january": monthNumber = 1; break; case "february": monthNumber = 2; break; case "march": monthNumber = 3; break; case "april": monthNumber = 4; break; case "may": monthNumber = 5; break; case "june": monthNumber = 6; break; case "july": monthNumber = 7; break; case "august": monthNumber = 8; break; case "september": monthNumber = 9; break; case "october": monthNumber = 10; break; case "november": monthNumber = 11; break; case "december": monthNumber = 12; break; default: monthNumber = 0; break; } return monthNumber; } public static void main(String[] args) { String month = "August"; int returnedMonthNumber = StringSwitchDemo.getMonthNumber(month); if (returnedMonthNumber == 0) { System.out.println("Invalid month"); } else { System.out.println(returnedMonthNumber); } } }

La salida de este código es 8.

DE Java Docs


Puedes usar:

case text1: case text4: do stuff; break;


Solo haz

case text1: case text4: do stuff; break;


puedes hacer como

case text1: case text4: { //blah break; }