private MainPanel() { super(new BorderLayout()); JTextArea textArea = new JTextArea("ComponentPopupMenu Test\naaaaaaaaaaa\nbbbbbbbbbbbbbb\ncccccccccccccc"); textArea.setComponentPopupMenu(new TextComponentPopupMenu()); add(new JScrollPane(textArea)); setPreferredSize(new Dimension(320, 240)); }
public MainWindow() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } setTitle("Podmieniacz"); setResizable(false); pop = new PopUpMenu(); popup2 = new PopUpMenu(); run = new boolean[4]; defaults[0] = "Œcie¿ka do katalogu"; defaults[1] = "Rozszerzenie pliku, bez \".\""; // Tablica wartoœci logicznych run[] s³u¿y do sprawdzenia // warunków potrzebnych do prawid³owego dzia³ania programu. // Pocz¹tkowo wszystkie równe s¹ false. for (int r = 0; r < run.length; r++) { run[r] = false; } setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 720, 480); JMenuBar menuBar = new JMenuBar(); JMenu mnPomoc = new JMenu("Pomoc"); JMenuItem help = new JMenuItem("Pomoc programu Podmieniacz"); mnPomoc.add(help); // W przypadku wybrania opcji "pomoc programu" pojawia siê okno pomocy help.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { HelpWindow hw = new HelpWindow(); hw.setVisible(true); } }); // help.addActionListener(this); help.setIcon(new ImageIcon(MainWindow.class.getResource("/resources/Help-icon.png"))); JMenuItem about = new JMenuItem("O programie Podmieniacz"); mnPomoc.add(about); // W przypadku wybrania opcji "o programie" pojawia siê okno informacji about.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { AboutWindow aw = new AboutWindow(); aw.setVisible(true); } }); // about.addActionListener(this); menuBar.add(mnPomoc); setJMenuBar(menuBar); Icon pic = null; try { pic = new ImageIcon( ImageIO.read(getClass().getResourceAsStream(("/resources/lupa_yellow.png")))); } catch (IOException e) { e.printStackTrace(); } contentPane = new JPanel(); contentPane.setForeground(Color.DARK_GRAY); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); GridBagLayout gbl_contentPane = new GridBagLayout(); gbl_contentPane.columnWidths = new int[] {175, 371, 0}; gbl_contentPane.rowHeights = new int[] {30, 30, 30, 30, 30, 0, 30, 30, 0, 30}; gbl_contentPane.columnWeights = new double[] {0.1, 0.8, 0.1}; gbl_contentPane.rowWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, Double.MIN_VALUE}; contentPane.setLayout(gbl_contentPane); directory = new Input(defaults[0], defaults[0]); directory.setToolTipText("Na przyk\u0142ad: C:\\Users"); directory.setForeground(Color.DARK_GRAY); directory.add(pop.getPopupMenu()); directory.setComponentPopupMenu(pop.getPopupMenu()); GridBagConstraints gbc_directory = new GridBagConstraints(); gbc_directory.fill = GridBagConstraints.HORIZONTAL; gbc_directory.insets = new Insets(0, 0, 5, 5); gbc_directory.gridx = 1; gbc_directory.gridy = 1; directory.getPreferredSize(); JLabel lblKatalogDoPrzeszukania = new JLabel("Katalog do przeszukania:"); GridBagConstraints gbc_lblKatalogDoPrzeszukania = new GridBagConstraints(); gbc_lblKatalogDoPrzeszukania.insets = new Insets(0, 0, 5, 5); gbc_lblKatalogDoPrzeszukania.anchor = GridBagConstraints.EAST; gbc_lblKatalogDoPrzeszukania.gridx = 0; gbc_lblKatalogDoPrzeszukania.gridy = 1; contentPane.add(lblKatalogDoPrzeszukania, gbc_lblKatalogDoPrzeszukania); contentPane.add(directory, gbc_directory); directory.setColumns(10); btnWybierz = new JButton("Wybierz..."); btnWybierz.setPreferredSize(new Dimension(136, 20)); btnWybierz.setToolTipText("Wybierz katalog, w którym nale¿y wyszukaæ pliki"); // Klikniêcie przycisku spowoduje wyœwietlenie okna wyboru katalogu btnWybierz.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { OpenDirectory od = new OpenDirectory(); directory.setText(od.getFolder()); } }); GridBagConstraints gbc_btnWybierz = new GridBagConstraints(); gbc_btnWybierz.anchor = GridBagConstraints.WEST; gbc_btnWybierz.insets = new Insets(0, 0, 5, 0); gbc_btnWybierz.gridx = 2; gbc_btnWybierz.gridy = 1; contentPane.add(btnWybierz, gbc_btnWybierz); JLabel lblRozszerzenie = new JLabel("Rozszerzenie pliku:"); GridBagConstraints gbc_lblRozszerzenie = new GridBagConstraints(); gbc_lblRozszerzenie.anchor = GridBagConstraints.EAST; gbc_lblRozszerzenie.insets = new Insets(0, 0, 5, 5); gbc_lblRozszerzenie.gridx = 0; gbc_lblRozszerzenie.gridy = 2; contentPane.add(lblRozszerzenie, gbc_lblRozszerzenie); fileFormat = new Input(defaults[1], defaults[1]); fileFormat.setToolTipText("Na przyk\u0142ad: txt"); fileFormat.setForeground(Color.DARK_GRAY); fileFormat.add(pop.getPopupMenu()); fileFormat.setComponentPopupMenu(pop.getPopupMenu()); GridBagConstraints gbc_fileFormat = new GridBagConstraints(); gbc_fileFormat.insets = new Insets(0, 0, 5, 5); gbc_fileFormat.fill = GridBagConstraints.HORIZONTAL; gbc_fileFormat.gridx = 1; gbc_fileFormat.gridy = 2; contentPane.add(fileFormat, gbc_fileFormat); fileFormat.setColumns(10); JLabel lblacuchZnakwDo = new JLabel("\u0141a\u0144cuch znak\u00F3w do wyszukania:"); GridBagConstraints gbc_lblacuchZnakwDo = new GridBagConstraints(); gbc_lblacuchZnakwDo.anchor = GridBagConstraints.EAST; gbc_lblacuchZnakwDo.insets = new Insets(0, 0, 5, 5); gbc_lblacuchZnakwDo.gridx = 0; gbc_lblacuchZnakwDo.gridy = 3; contentPane.add(lblacuchZnakwDo, gbc_lblacuchZnakwDo); findText = new Input("", ""); findText.setForeground(Color.DARK_GRAY); findText.add(pop.getPopupMenu()); findText.setComponentPopupMenu(pop.getPopupMenu()); GridBagConstraints gbc_findText = new GridBagConstraints(); gbc_findText.insets = new Insets(0, 0, 5, 5); gbc_findText.fill = GridBagConstraints.HORIZONTAL; gbc_findText.gridx = 1; gbc_findText.gridy = 3; contentPane.add(findText, gbc_findText); findText.setColumns(10); JLabel lblacuchZnakwDo_1 = new JLabel("\u0141a\u0144cuch znak\u00F3w do zamiany:"); GridBagConstraints gbc_lblacuchZnakwDo_1 = new GridBagConstraints(); gbc_lblacuchZnakwDo_1.anchor = GridBagConstraints.EAST; gbc_lblacuchZnakwDo_1.insets = new Insets(0, 0, 5, 5); gbc_lblacuchZnakwDo_1.gridx = 0; gbc_lblacuchZnakwDo_1.gridy = 4; contentPane.add(lblacuchZnakwDo_1, gbc_lblacuchZnakwDo_1); replaceText = new Input("", ""); replaceText.setForeground(Color.DARK_GRAY); replaceText.add(pop.getPopupMenu()); replaceText.setComponentPopupMenu(pop.getPopupMenu()); GridBagConstraints gbc_replaceText = new GridBagConstraints(); gbc_replaceText.insets = new Insets(0, 0, 5, 5); gbc_replaceText.fill = GridBagConstraints.HORIZONTAL; gbc_replaceText.gridx = 1; gbc_replaceText.gridy = 4; contentPane.add(replaceText, gbc_replaceText); replaceText.setColumns(10); findReplace = new JButton("Znajd\u017A i zamie\u0144"); findReplace.setPreferredSize(new Dimension(136, 20)); findReplace.setToolTipText("Kliknij aby wyszukaæ i zamieniæ ³añcuch znaków w plikach"); // Klikniêcie "znajdŸ i zamieñ" findReplace.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { // Wyczyszczenie komponentu textArea results.setText(""); // Przypisanie wartoœci podanych przez u¿ytkownika do zmiennych String catalogPath = directory.getText(); String format = fileFormat.getText(); String strToFind = findText.getText(); String strReplace = replaceText.getText(); File directory = new File(catalogPath); /* * Sprawdzenie czy wprowadzona œcie¿ka jest b³êdna lub czy nie * odnosi siê do katalogu (tylko do pliku) Jeœli tak wyœwietlony * zostanie komunikat o b³êdzie, zmienna logiczna przyjmie * wartoœæ false, czyli nie jest spe³niony jeden z warunków * dzia³ania programu. W przeciwnym wypadku warunki s¹ spe³nione * i zmienna logiczna przyjmuje wartoœæ true */ if (!(directory.exists() && directory.isDirectory())) { new ErrorWindow("Podany katalog nie istnieje"); run[0] = false; } else run[0] = true; /* * Sprawdzenie czy nie wprowadzono formatu pliku oraz czy * spe³niony zosta³ wczeœniejszy warunek. Jeœli jest to * spe³nione pojawia siê komunikat o b³êdzie zmienna logiczna = * false W przeciwnym wypaku run = true */ if (format.equals("") && run[0]) { new ErrorWindow("Nie podano rozszerzenia pliku"); run[1] = false; } else run[1] = true; /* * Sprawdzenie czy nie wprowadzono ³añcucha znaków do wyszukania * oraz czy spe³nione zosta³y wczeœniejsze warunki. Jeœli jest * to spe³nione pojawia siê komunikat o b³êdzie zmienna logiczna * = false W przeciwnym wypaku run = true */ if (strToFind.equals("") && run[0] && run[1]) { new ErrorWindow("Nie podano ³añcucha znaków do wyszukania"); run[2] = false; } else run[2] = true; /* * Sprawdzenie czy nie wprowadzono ³añcucha znaków do podmiany * oraz czy spe³nione zosta³y wczeœniejsze warunki. Jeœli jest * to spe³nione pojawia siê komunikat o b³êdzie zmienna logiczna * = false W przeciwnym wypaku run = true Pojawia siê okno * prosz¹ce u¿ytkownika o decyzjê czy zast¹piæ ³añcuch pustymi * znakami */ if (strReplace.equals("") && run[0] && run[1] && run[2]) { qw = new QuestionWindow( "Nie podano ³añcucha zastêpuj¹cego\n³añcuch wyszukany w plikach zostanie\nzast¹piony pustymi znakami.\nKontynuowaæ?"); if (qw.getChoice() == JOptionPane.YES_OPTION) run[3] = true; else run[3] = false; } else run[3] = true; /* * Jeœli wszystkie warunki s¹ spe³nione rozpoczyna siê operacja * na plikach */ if (run[0] && run[1] && run[2] && run[3]) { fr = new Findreplace(directory, format, strToFind, strReplace); // Drukowanie wyników printResult(fr.getResults(), results); } } }); GridBagConstraints gbc_findReplace = new GridBagConstraints(); gbc_findReplace.insets = new Insets(0, 0, 5, 5); gbc_findReplace.gridx = 1; gbc_findReplace.gridy = 5; contentPane.add(findReplace, gbc_findReplace); results = new JTextArea(); results.setToolTipText("Lista plik\u00F3w, kt\u00F3re zosta\u0142y przetworzone"); results.setFont(new Font("Tahoma", Font.PLAIN, 13)); results.setEditable(false); results.setForeground(Color.DARK_GRAY); popup2.disableItem("Cut"); popup2.disableItem("Paste"); lblZnalezionePlikiO = new JLabel("Pliki poddane operacji:"); GridBagConstraints gbc_lblZnalezionePlikiO = new GridBagConstraints(); gbc_lblZnalezionePlikiO.anchor = GridBagConstraints.SOUTH; gbc_lblZnalezionePlikiO.insets = new Insets(0, 0, 5, 5); gbc_lblZnalezionePlikiO.gridx = 1; gbc_lblZnalezionePlikiO.gridy = 6; contentPane.add(lblZnalezionePlikiO, gbc_lblZnalezionePlikiO); yellowLoupe = new JLabel(""); yellowLoupe.setIcon(pic); GridBagConstraints gbc_lblNewLabel = new GridBagConstraints(); gbc_lblNewLabel.anchor = GridBagConstraints.EAST; gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel.gridx = 0; gbc_lblNewLabel.gridy = 7; contentPane.add(yellowLoupe, gbc_lblNewLabel); results.add(popup2.getPopupMenu()); results.setComponentPopupMenu(popup2.getPopupMenu()); JScrollPane scroll = new JScrollPane(results); GridBagConstraints scrollConstrains = new GridBagConstraints(); scrollConstrains.insets = new Insets(0, 0, 5, 5); scrollConstrains.fill = GridBagConstraints.BOTH; scrollConstrains.gridx = 1; scrollConstrains.gridy = 7; scrollConstrains.gridwidth = 1; contentPane.add(scroll, scrollConstrains); lblpiotrBartkiewicz = new JLabel("@Piotr Bartkiewicz"); GridBagConstraints gbc_lblpiotrBartkiewicz = new GridBagConstraints(); gbc_lblpiotrBartkiewicz.anchor = GridBagConstraints.SOUTHEAST; gbc_lblpiotrBartkiewicz.gridx = 2; gbc_lblpiotrBartkiewicz.gridy = 8; contentPane.add(lblpiotrBartkiewicz, gbc_lblpiotrBartkiewicz); }
public SerialConsole(CollectServer server, String category) { this.server = server; this.category = category; panel = new JPanel(new BorderLayout()); logArea = new JTextArea(4, 30); logArea.setEditable(false); panel.add(new JScrollPane(logArea), BorderLayout.CENTER); JPopupMenu popupMenu = new JPopupMenu(); JMenuItem clearItem = new JMenuItem("Clear"); clearItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { logArea.setText(""); } }); popupMenu.add(clearItem); logArea.setComponentPopupMenu(popupMenu); commandField = new JTextField(); commandField.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { String command = trim(commandField.getText()); if (command != null) { try { int previous = historyCount - 1; if (previous < 0) previous += history.length; if (!command.equals(history[previous])) { history[historyCount] = command; historyCount = (historyCount + 1) % history.length; } historyPos = historyCount; if (SerialConsole.this.server.sendToNode(command)) { commandField.setText(""); } else { addSerialData("*** failed to send command ***"); } } catch (Exception ex) { System.err.println("could not send '" + command + "':"); ex.printStackTrace(); JOptionPane.showMessageDialog( panel, "could not send '" + command + "':\n" + ex, "ERROR", JOptionPane.ERROR_MESSAGE); } } else { commandField.getToolkit().beep(); } } }); commandField.addKeyListener( new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_UP: { int nextPos = (historyPos + history.length - 1) % history.length; if (nextPos == historyCount || history[nextPos] == null) { commandField.getToolkit().beep(); } else { String cmd = trim(commandField.getText()); if (cmd != null) { history[historyPos] = cmd; } historyPos = nextPos; commandField.setText(history[historyPos]); } break; } case KeyEvent.VK_DOWN: { int nextPos = (historyPos + 1) % history.length; if (nextPos == historyCount) { historyPos = nextPos; commandField.setText(""); } else if (historyPos == historyCount || history[nextPos] == null) { commandField.getToolkit().beep(); } else { String cmd = trim(commandField.getText()); if (cmd != null) { history[historyPos] = cmd; } historyPos = nextPos; commandField.setText(history[historyPos]); } break; } } } }); panel.add(commandField, BorderLayout.SOUTH); }
private void initComponents() { nameText.setComponentPopupMenu(TextFieldPopupMenu.INSTANCE); titleText.setComponentPopupMenu(TextFieldPopupMenu.INSTANCE); gameVersionText.setComponentPopupMenu(TextFieldPopupMenu.INSTANCE); launchFlagsArea.setComponentPopupMenu(TextFieldPopupMenu.INSTANCE); userFilesIncludeArea.setComponentPopupMenu(TextFieldPopupMenu.INSTANCE); launchFlagsArea.setFont(nameText.getFont()); userFilesIncludeArea.setFont(nameText.getFont()); userFilesExcludeArea.setFont(nameText.getFont()); JTabbedPane tabbedPane = new JTabbedPane(); JPanel container = new JPanel(); container.setLayout(new MigLayout("fill, insets dialog")); tabbedPane.addTab("Modpack", null, createMainPanel()); tabbedPane.addTab("Launch", null, createLaunchPanel()); tabbedPane.addTab("User Files", null, createUserFilesPanel()); tabbedPane.addTab("Optional Features", null, createFeaturesPanel()); container.add(tabbedPane, "span, grow, gapbottom unrel"); JButton saveButton = new JButton("Save"); JButton cancelButton = new JButton("Cancel"); container.add(saveButton, "tag ok, span, split 2, sizegroup bttn"); container.add(cancelButton, "tag cancel, sizegroup bttn"); getRootPane().setDefaultButton(saveButton); getRootPane() .registerKeyboardAction( event -> cancelButton.doClick(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); add(container, BorderLayout.CENTER); saveButton.addActionListener( e -> { if (nameText.getText().trim().isEmpty()) { SwingHelper.showErrorDialog( BuilderConfigDialog.this, "The 'Name' field cannot be empty.", "Input Error"); return; } if (gameVersionText.getText().trim().isEmpty()) { SwingHelper.showErrorDialog( BuilderConfigDialog.this, "The 'Game Version' field must be a Minecraft version.", "Input Error"); return; } copyTo(); saved = true; dispose(); }); cancelButton.addActionListener(e -> dispose()); TableSearchable tableSearchable = SearchableUtils.installSearchable(featuresTable); tableSearchable.setMainIndex(-1); }