Работаю в Intellij IDEA делаю desktop приложение. Реализую удаление компонента по кнопке delete через addKeyListener и метод keyPressed внутри метода алгоритм по удалению. Intellij IDEA выдаёт что Java method keyPressed is too complex to analyze. Собственно программа работает, и быстродействие вроде нормальное, но понимаю что это не совсем правильно. Какие есть способы исправить это?
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
if (var == 3) {
if (e.isAltDown() && e.getKeyCode() == KeyEvent.VK_Q) {
isManual = !isManual;
}
}
if (var == 2)
switch (e.getKeyCode()) {
case KeyEvent.VK_BACK_SPACE:
if (lastline[countline] == 1 && countline > 0) {
masX[n - 1] = 0;
masX1[n - 1] = 0;
masY[n - 1] = 0;
masY1[n - 1] = 0;
n--;
countline--;
} else {
if (lastline[countline] == 2 && countline > 0) {
ELmasX[ELn - 1] = 0;
ELmasX1[ELn - 1] = 0;
ELmasY[ELn - 1] = 0;
ELmasY1[ELn - 1] = 0;
ELn--;
countline--;
}
}
break;
case KeyEvent.VK_DELETE:
if (IfChoice == 1) {
for (int u = ElementNumber; u <= Te[ElementType]; u++) {
for (int m = 1; m <= KTC[ElementType]; m++) {
EKX[ElementType][u][m] = EKX[ElementType][u + 1][m];
EKX1[ElementType][u][m] = EKX1[ElementType][u + 1][m];
EKY[ElementType][u][m] = EKY[ElementType][u + 1][m];
EKY1[ElementType][u][m] = EKY1[ElementType][u + 1][m];
}
for (int j = 1; j <= ELn; j++) {
if (Pr1i[j] == ElementType && Pr1j[j] == u + 1) {
Pr1j[j]--;
}
if (Pr2i[j] == ElementType && Pr2j[j] == u + 1) {
Pr2j[j]--;
}
}
if (ElementType == 6 || ElementType == 7 || ElementType == 8) {
VarText[0][ElementType][u][1] = VarText[0][ElementType][u + 1][1];
VarText[0][ElementType][u][2] = VarText[0][ElementType][u + 1][2];
}
if (ElementType == 3 || ElementType == 4) {
VarText[0][ElementType][u][1] = VarText[0][ElementType][u + 1][1];
VarText[0][ElementType][u][2] = VarText[0][ElementType][u + 1][2];
VarText[0][ElementType][u][3] = VarText[0][ElementType][u + 1][3];
}
}
for (int i = 1; i <= n; i++) {
for (int m = 1; m <= KTC[ElementType]; m++) {
if (masX[i] == (Tcx[ElementType][ElementNumber][m] + Tcx1[ElementType][ElementNumber][m]) / 2 && masY[i] == (Tcy[ElementType][ElementNumber][m] + Tcy1[ElementType][ElementNumber][m]) / 2 ||
masX1[i] == (Tcx[ElementType][ElementNumber][m] + Tcx1[ElementType][ElementNumber][m]) / 2 && masY1[i] == (Tcy[ElementType][ElementNumber][m] + Tcy1[ElementType][ElementNumber][m]) / 2) {
for (int j = i; j <= n; j++) {
masX[j] = masX[j + 1];
masX1[j] = masX1[j + 1];
masY[j] = masY[j + 1];
masY1[j] = masY1[j + 1];
Pr2i[j] = Pr2i[j + 1];
Pr2j[j] = Pr2j[j + 1];
Pr2k[j] = Pr2k[j + 1];
Pr1i[j] = Pr1i[j + 1];
Pr1j[j] = Pr1j[j + 1];
Pr1k[j] = Pr1k[j + 1];
}
n--;
}
}
}
Te[ElementType]--;
IfChoice = 0;
}
if (IfChoice == 2) {
for (int u = ElementNumber; u < ELTe[ElementType]; u++) {
for (int m = 1; m <= ELKTC[ElementType]; m++) {
ELEKX[ElementType][u][m] = ELEKX[ElementType][u + 1][m];
ELEKX1[ElementType][u][m] = ELEKX1[ElementType][u + 1][m];
ELEKY[ElementType][u][m] = ELEKY[ElementType][u + 1][m];
ELEKY1[ElementType][u][m] = ELEKY1[ElementType][u + 1][m];
for (int j = 1; j <= ELn; j++) {
if (ELPr1i[j] == ElementType && ELPr1j[j] == u + 1) {
ELPr1j[j]--;
}
if (ELPr2i[j] == ElementType && ELPr2j[j] == u + 1) {
ELPr2j[j]--;
}
}
}
VarText[1][ElementType][u][1] = VarText[1][ElementType][u + 1][1];
}
ELTe[ElementType]--;
IfChoice = 0;
for (int m = 1; m <= ELKTC[ElementType]; m++) {
for (int i = 1; i < ELn; i++) {
if (ELmasX[i] == (ELTcx[ElementType][ElementNumber][m] + ELTcx1[ElementType][ElementNumber][m]) / 2 && ELmasY[i] == (ELTcy[ElementType][ElementNumber][m] + ELTcy1[ElementType][ElementNumber][m]) / 2 ||
ELmasX1[i] == (ELTcx[ElementType][ElementNumber][m] + ELTcx1[ElementType][ElementNumber][m]) / 2 && ELmasY1[i] == (ELTcy[ElementType][ElementNumber][m] + ELTcy1[ElementType][ElementNumber][m]) / 2) {
for (int j = i; j < ELn; j++) {
ELmasX[j] = ELmasX[j + 1];
ELmasX1[j] = ELmasX1[j + 1];
ELmasY[j] = ELmasY[j + 1];
ELmasY1[j] = ELmasY1[j + 1];
ELPr2i[j] = ELPr2i[j + 1];
ELPr2j[j] = ELPr2j[j + 1];
ELPr2k[j] = ELPr2k[j + 1];
ELPr1i[j] = ELPr1i[j + 1];
ELPr1j[j] = ELPr1j[j + 1];
ELPr1k[j] = ELPr1k[j + 1];
}
ELn--;
}
}
}
}
if (IfChoiceLine == 1) {
if (n > 1) {
for (int i = LineNumber; i <= n; i++) {
masX[i] = masX[i + 1];
masX1[i] = masX1[i + 1];
masY[i] = masY[i + 1];
masY1[i] = masY1[i + 1];
Pr2i[i] = Pr2i[i + 1];
Pr2j[i] = Pr2j[i + 1];
Pr2k[i] = Pr2k[i + 1];
Pr1i[i] = Pr1i[i + 1];
Pr1j[i] = Pr1j[i + 1];
Pr1k[i] = Pr1k[i + 1];
}
n--;
IfChoiceLine = 0;
}
}
if (IfChoiceLine == 2) {
for (int i = LineNumber; i <= ELn; i++) {
ELmasX[i] = ELmasX[i + 1];
ELmasX1[i] = ELmasX1[i + 1];
ELmasY[i] = ELmasY[i + 1];
ELmasY1[i] = ELmasY1[i + 1];
ELPr2i[i] = ELPr2i[i + 1];
ELPr2j[i] = ELPr2j[i + 1];
ELPr2k[i] = ELPr2k[i + 1];
ELPr1i[i] = ELPr1i[i + 1];
ELPr1j[i] = ELPr1j[i + 1];
ELPr1k[i] = ELPr1k[i + 1];
}
ELn--;
IfChoiceLine = 0;
}
break;
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Что делает метод notifyItemChange() у класса RecyclerViewAdapter?
Разобрал стандартные примеры с JTreeСобственно возник вопрос, возможно ли заменить элементы JTree на другой компонент, что бы при разворачивании,...
Как проверить присутствие строки в базе данных SQLite и если есть то обновлять какое то значение в строке?