1 / 19

Прозорец – клас JFrame ( javax.swing ) public JFrame(String title)

Прозорец – клас JFrame ( javax.swing ) public JFrame(String title) Създава прозорец със заглавие title . public void setDefaultCloseOperation( int  oper) Установява операцията при затваряне на прозореца. JFrame.DO_NOTHING_ON_CLOSE нищо JFrame.HIDE_ON_CLOSE скрий прозореца

thor
Download Presentation

Прозорец – клас JFrame ( javax.swing ) public JFrame(String title)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Прозорец – класJFrame(javax.swing) public JFrame(String title) Създава прозорец със заглавиеtitle. public void setDefaultCloseOperation(int oper) Установява операцията при затваряне на прозореца. JFrame.DO_NOTHING_ON_CLOSE нищо JFrame.HIDE_ON_CLOSEскрий прозореца JFrame.DISPOSE_ON_CLOSEосвободи прозореца JFrame.EXIT_ON_CLOSE завърши приложението public Container getContentPane() Връща обект от класа Container със съдържанието на фрейма. public void setContentPane(Container contentPane) Установява съдържанието на фрейма. oper =

  2. Изпълнение на приложение: В метода mainсе създава фрейм и се изпълнява асинхронно в отделна нишка. public staticvoid main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { new <конструктор на фрейм>(); } }); }

  3. Събития • Всички събития за компонент • ComponentEvent • FocusEvent • KeyEvent • MouseEvent • MouseMotionEvent • MouseWheelEvent • Събития с прозорци • клас WindowEvent • активен прозорец • затваряне при разрушаване • затваряне от системното меню • неактивен прозорец • промяна от икона в нормален вид • промяна от нормален вид в икона • отваряне на прозорец

  4. интерфейс WindowListener или адаптерен класWindowAdapter • добавяне на слушател lза събитието WindowsEvent към компонентата • publicvoid addWindowListener(WindowListener l)

  5. Менажери на разположението • Менажер на разположението • обект, който управлява разполагането на компонентите в контейнера; • определя размера и разположението на всяка компонента; • установява се за контейнер чрез метода • publicvoid setLayout(LayoutManager layout) • ИнтерфейсLayoutManager(java.awt) • дефинира интерфейс за класове, които разполагат компонентите в контейнери.

  6. Видове менажери • BorderLayout • BoxLayout • CardLayout • FlowLayout • GridBagLayout • GridLayout • SpringLayout • GroupLayout

  7. КласBorderLayout(java.awt) • Разполага компонентите в пет области: • горна PAGE_START • долна PAGE_END • лява LINE_START • дясна LINE_END • централна CENTER Това е подразбиращият се менажер заJFrame. PAGE_START CENTER LINE_START LINE_END PAGE_END

  8. c1 c3 c2 c4 c5 // Установява менажер на разположението Container container = getContentPane(); BorderLayout layout = new BorderLayout(); container.setLayout(layout); // Разполага компонентите вконтейнера container.add(c1, BorderLayout.PAGE_START); container.add(c2, BorderLayout.LINE_START); container.add(c3, BorderLayout.CENTER); container.add(c4, BorderLayout.LINE_END); container.add(c5, BorderLayout.PAGE_END);

  9. КласFlowLayout (java.awt) Разполага компонентите в поток от ляво надясно. Обикновено се използва за аранжиране на бутони в панел. Всяка линия се центрира. Това е подразбиращият се менажер за JPanel. public FlowLayout() public FlowLayout(int alignment) public FlowLayout(int alignment, int horizontalGap, int verticalGap) alignment – подравняване: отляво, центрирано (по подразбиране), отдясно; определя се чрез константите:LEADING, CENTER, TRAILING; horizontalGap,verticalGap– брой пиксели между компонентите (5 пиксела по подразбиране).

  10. c1 c2 c3 c4 c5 // Установява менажер на разположението Container container = getContentPane(); FlowLayout layout = new FlowLayout(); container.setLayout(layout); // Разполага компонентите в контейнера container.add(c1); container.add(c2); container.add(c3); container.add(c4); container.add(c5);

  11. Клас GridLayout (java.awt) • Разполага компонентите в мрежа от елементи с еднакви размери. • public GridLayout (int rows,intcols) • public GridLayout (int rows,intcols,inthgap,intvgap) • rows, cols – брой реда/стълба; • допуска rows = 0 или cols = 0 • (не едновременно 0); • rowsе с приоритет предcols; • hgap,vgap– хоризонтално/вертикално празно пространство.

  12. // Установява менажер на разположението Container container = getContentPane(); GridLayout layout = new GridLayout(3, 2); container.setLayout(layout); new GridLayout(2,3)или new GridLayout(2,2) new GridLayout(3,2) new GridLayout(1,0) new GridLayout(0,1)

  13. Бутон– класJButton (javax.swing) Създава бутон. public JButton() КонструираJButtonбез етикет. public JButton(String label) КонструираJButtonс определен етикет label. • Събитиес действие • Клас ActionEvent • public string getActionCommand() • Връща командния низ, свързан с това действие. • ИнтерфейсActionListener • public interface ActionListener { • // Извиква се при вдигане на събитието ActionEvent, показва източника • // и потребителят описва действието, което трябва да се предприеме. • void actionPerformed (ActionEvent e); • } • Добавя слушател lза събитието ActionEvent • public void addActionListener(ActionListener l)

  14. Етикет –класJLabel(javax.swing) Изобразява област за къс текст, изображение или и двете. Не реагира на входни събития. public JLabel(String text) Създава етикет с определен текстtext. public void setForeground(Color color) Установява цвета colorна текста на етикет.

  15. JLabel label JFrame JButton button Пример: Приложение, което при всяко натискане на бутон променя цвета на текста на етикет в черен, син, червен. Използва събитиетоActionEvent заJButton, което се обработва от метода actionPerformed на интерфейса ActionListener.

  16. Импорт на пакетитеjava.swing,java.awt иjava.awt.event. • Класът ButtonDemo наследява класаJFrameи реализира интерфейсаActionListener. • Декларация на променливи • а) бутон button; • б) етикет label; • в) цвят color. • Конструктор • извиква конструктора на супер класа – прозорец със заглавие „Фрейм“ • установява завършване на приложението при затваряне на прозореца • получава съдържанието на фрейма • създава етикет с текст „Добре дошли!“ • създава бутон с текст „Смени цвета“ • добавя етикета в горната част на фрейма • добавя бутона в долната част на фрейма • добавя слушател на събития при натискане на бутон, като • самият фрейм е слушател • установява размера на фрейма 150x100 • установява видим фрейм • установява черен цвят • установява цвета на текста на етикета

  17. Реализира метода actionPerformed на събитието „натиснат бутон“ • ако цветът е черен • цвят  син • в противен случай ако цветът е син • цвят  червен • в противен случай • цвят  черен • установява цвета на текста на етикета • Реализира методаmain

  18. import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ButtonDemo extends JFrame implements ActionListener { private JButton button; private JLabel label; private Color color; public ButtonDemo() { super("Фрейм"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container container = getContentPane(); label = new JLabel("Добре дошли!"); button = new JButton("Смени цвета"); container.add(label, BorderLayout.PAGE_START); container.add(button, BorderLayout.PAGE_END); button.addActionListener(this);// Добавя слушател на събитието setSize(150,100); setVisible(true); color = Color.BLACK; label.setForeground(color); }

  19. // Извиква се автоматично при вдигане на събитието // „натиснат бутон“ public void actionPerformed(ActionEvent evt) { if(color == Color.BLACK) color = Color.BLUE; else if(color == Color.BLUE) color = Color.RED; else color = Color.BLACK; label.setForeground(color); } public static void main(String[] args) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new ButtonDemo(); } }); } }

More Related