private Path holePathVonNeuemLaufwerk(ArrayList<Path> initial, ArrayList<Path> aktuell) { ArrayList<Path> test, test1; test = (ArrayList<Path>) aktuell.clone(); test1 = (ArrayList<Path>) initial.clone(); test.removeAll(test1); return test.get(test.size() - 1); }
@Override public void run() { while (true) { if (istWindows()) aktuell = holeLaufwerkeWindows(); else aktuell = holeLaufwerkeUnix(); if (initial.size() != aktuell.size()) { if (!initial.containsAll(aktuell)) { neuesLaufwerk = holePathVonNeuemLaufwerk(initial, aktuell); textArea.append("Neues Laufwerk endeckt: " + neuesLaufwerk + System.lineSeparator()); this.initial = (ArrayList<Path>) aktuell.clone(); neuesLaufwerkDialog(); } else { this.initial = (ArrayList<Path>) aktuell.clone(); textArea.append("Laufwerk wurde entfernt" + System.lineSeparator()); } } try { Thread.sleep(5000); } catch (InterruptedException e) { System.out.println("Laufwerksprüfung wird abgebrochen"); } } }
// Set the positions and sizes of the buttons and display the panel public void paintComponent(Graphics page) { super.paintComponent(page); // Calculate the button width and height so the buttons span the screen int screenWidth = getWidth(); int screenHeight = getHeight(); int[] buttonWidth = new int[5]; buttonWidth[0] = (screenWidth - (BUTTON_SPACE * 13)) / 13; buttonWidth[1] = buttonWidth[0]; buttonWidth[2] = (screenWidth - (BUTTON_SPACE * 11)) / 11; buttonWidth[3] = (screenWidth - (BUTTON_SPACE * 11)) / 10; buttonWidth[4] = (screenWidth - (BUTTON_SPACE * 11)) / 10; int buttonHeight = (screenHeight - (BUTTON_SPACE * 7)) / 6; int xPos; int yPos; // Subtract 1 from this int every time a sound button is placed where it belongs // When it equals zero all sounds have been placed int keysToMap = soundList.size(); ArrayList<BoardButton> copy = (ArrayList<BoardButton>) soundList.clone(); // For each string in the rows array, check if any of the key strings for the sound match for (int j = 0; j < rows.length; j++) { int i = 0; // For each string in the rows array, check each sound object to see if it is played with a // key in that row while ((copy.size() > 0) && (i < soundList.size())) { int index = 0; if (soundList.get(i).getKeyName().indexOf("N") != -1) { if (j == 4) index = rows[j].indexOf(soundList.get(i).getKeyName().substring(1)); else index = -1; } else { if (j != 4) // Get where the key string is in the rows array index = rows[j].indexOf(soundList.get(i).getKeyName()); else index = -1; } // If the key string doesn't exist, the key is not in this row and the button won't be // placed if (index != -1) { // Place the button based on the corresponding key's position on the keyboard xPos = ((buttonWidth[j] + BUTTON_SPACE) * index) + BUTTON_SPACE; yPos = ((buttonHeight + BUTTON_SPACE) * j) + BUTTON_SPACE; JButton curr = soundList.get(i).getButton(); // Set the button's size and position to the size and position calculated curr.setSize(new Dimension(buttonWidth[j], buttonHeight)); curr.setLocation(xPos, yPos); // Decrement the number of sounds left to map copy.remove(soundList.get(i)); keysToMap -= 1; } // Increment the index of the sound to check i++; } } // Set the x-position, y-position, and size of the spacebar key // It will span the bottom of the screen and be the same height as the other buttons JButton btnSpace = space.getButton(); xPos = 10; yPos = ((buttonHeight + BUTTON_SPACE) * 5) + BUTTON_SPACE; btnSpace.setSize(new Dimension(screenWidth - (BUTTON_SPACE * 2), buttonHeight)); btnSpace.setLocation(xPos, yPos); }