JFrame
JFrame frame = new JFrame("Tytuł ramki"); frame.setSize(300 , 300); // Ustawia rozmiar ramki. frame.pack(); // Ustawia taki rozmiar, by udało się spakować znajdujące się w ramce komponenty. frame.setLocation(300, 300); // Miejsce na ekranie na którym pojawić się ma ramka. frame.setVisible(true); // Widoczność ramki. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Domyślna operacja po naciśnięciu "X".
JTextArea i JScrollPane
W przypadku przypisania JScrollPane do JTextArea, do ramki, czy panelu dodaje się tylko obiekt scroll.
JTextArea txtArea = new JTextArea(); txtArea.setLineWrap(true); // Na końcu linii przerzuca tekst do następnej. txtArea.setWrapStyleWord(true); // Przerzuca całe wyrazy, nie pojedyncze litery. JScrollPane scroll = new JScrollPane(); scroll = new JScrollPane(txtArea, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS // Scroll występuje zawsze. ScrollPaneConstants.VERTICAL_SCROLLBAR_HIDE // nigdy ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED // Tylko gdy jest taka potrzeba // Dla HORIZONTAL sytuacja wygląda tak samo
JRadioButton i ButtonGroup
JRadioButton rButton = new JRadioButton("Przycisk", true); JRadioButton rButton2 = new JRadioButton("Przycisk 2", false); ButtonGroup group = new ButtonGroup(); group.add(rButton); group.add(rButton2);
JComboBox
JComboBox cBox = new JComboBox(); cBox.addItem("Java");
JSlider
JSlider slider = new JSlider(0, 100, 50): JSlider slider2 = new JSlider(SwingConstants.VERTICAL, 0, 100, 50);
JMenuBar, JMenu i JMenuItem
JMenuBar menuBar = new JMenuBar(); JMenu menuPlik = new JMenu("Plik"); JMenu menuEdycja = new JMenu("Edycja"); JMenuItem opcjaZapisz = new JMenuItem("Zapisz", 'Z'); // 'Z' to MNEMONIK, gdy menu Plik będzie otworzone, to po naciśnięciu z automatycznie odpali się akcja przypisana do Zapisz. JMenuItem opcjaWczytaj= new JMenuItem("Wczytaj"); JMenuItem opcjaZaznacz = new JMenuItem("Zaznacz wszystko"); menuPlik.add(opcjaZapisz); menuPlik.addSeparator(); // Oddziela kreską różne kategorie opcji. menuPlik.add(opcjaWczytaj); menuEdycja.add(opcjaZaznacz); opcjaZapisz.setAccelerator(KeyStroke.getKeyStroke("ctrl S")); // AKCELERATOR - przypisuje skrót ctrl + s do plik/zapisz. opcjaZaznacz.setEnabled(false); // Dezaktywuje element menu. menuBar.add(menuPlik); menuBar.add(menuEdycja); setJMenuBar(menuBar);
Do menu można też dodać elementy pokroju RadioButton i CheckBox.
JRadioButtonMenuItem radioItem= new JRadioButtonMenuItem("Radio"); JCheckBoxMenuItem checkBoxItem = new JCheckBoxMenuItem("CheckBox");
JPopupMenu
JMenuItem opcjaKopiuj = new JMenuItem(); JPopupMenu popupMenu = new JPopupMenu(); popupMenu.add(opcjaKopiuj); jakisPanelCzyCos.setComponentPopupMenu(popUpMenu);
JOptionPane
JOptionPane.showConfirmDialog(panel, "Usunąć wszystko?"); JOptionPane.showInputDialog(panel, "Podaj imię:"); JOptionPane.showMessageDialog(panel, "Wykonano!");
Przykładowe okno dialogowe, w którym umieścić można własne opcje:
class Opcje { String[] opcje = {"OPCJA 0", "OPCJA 1", "OPCJA 2"}; public Opcje() { int wybor = JOptionPane.showOptionDialog(null, "Opcje", "Wybierz opcję", 0, JOptionPane.INFORMATION_MESSAGE, null, opcje, opcje[1]); if(wybor != -1) System.out.println("Wybrałeś: " + opcje[wybor]); else System.out.println("Zamknąłeś program nie wybierając żadnej z opcji!"); } }
Przykładowe okno dialogowe, które pobiera od użytkownika informację:
class InputDialog { public InputDialog() { String imie = JOptionPane.showInputDialog(null, "Podaj swoje imię:"); if (imie != null) System.out.println("Witaj " + imie + ". :)"); else System.out.println("Nie podałeś swojego imienia, więc nie mogę się przywitać. :("); } }
Tworzenie własnego okna dialogowego:
class OknoDialogowe extends JDialog { public OknoDialogowe(JFrame frame) { super(frame, "Własne okno", true); add(new JLabel("Jakiś komunikat")); JPanel panel = new JPanel(); JButton button = new JButton("OK"); button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event) { setVisible(false); } }); panel.add(button); add(BorderLayout.SOUTH, panel); setSize(250, 150); setVisible(true); } }
JTabbedPane
panel = new JPanel(); panel2 = new JPanel(); label = new JLabel("Zawartość panelu pierwszego"); label2 = new JLabel("Zawartość panelu drugiego"); tabbedPane = new JTabbedPane(); panel.add(label); panel2.add(label2); tabbedPane.addTab("Zakładka 1", panel); tabbedPane.addTab("Zakładka 2", panel2);
JProgressBar
JProgressBar progressBar = new JProgressBar(0, 100); // Min i max wartość. progressBar.setValue(50); // Ustawia wartość na 50% - akurat w tym przypadku. progressBar.setStringPainted(true); // Włącza postęp w %. progressBar.setIndeterminate(true); // Doskonale nadaje się do zastosowania, gdy tak naprawdę trudno przewidzieć ile potrwa zadanie. progressBar.setString("Zadanie wykonane!"); // Wstawia jakiś ciąg znaków na pasku postępu - najpierw trzeba użyć setStringPainted.
Border i BorderFactory
Przykład zwykłej ramki:
Border ramka = BorderFactory.createEtchedBorder(); panel.setBorder(ramka);
Przykład ramki z tytułem:
Border ramka = BorderFactory.createEtchedBorder(); Border ramkaZTytulem = BorederFactory.createTitledBorder(ramka, "Tytuł ramki"); panel.setBorder(ramkaZTytulem);
Cursor
Tworzenie i zmiana kursora na inny:
Cursor cursor = new Cursor(Cursor.TEXT_CURSOR); panel.setCursor(cursor);
JToolBar
Paski narzędzi można przestawiać pomiędzy poszczególnymi krawędziami ramki. Taki obiekt można również wyciągnąć, by znajdował się w osobnej ramce. Po jej zamknięciu wróci na swoje miejsce.
JToolBar toolBar = new JToolBar(); Action akcja = new JakasAkcja("Czerwony", new ImageIcon("red_icon.gif") ,Color.red, panel); // Tworzenie obiektu akcji. toolBar.add(akcja); add(BorderLayout.NORTH, toolBar);
Metoda setToolTip
Dymki zawierające dodatkowe informacje, przypisać można do każdego obiektu JComponent. Przykład z przyciskiem:
button = new JButton("Przycisk"); button.setToolTipText("Jakiś opis.");