slide1
Download
Skip this Video
Download Presentation
Прозорец – клас JFrame ( javax.swing ) public JFrame(String title)

Loading in 2 Seconds...

play fullscreen
1 / 19

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


  • 101 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Прозорец – клас JFrame ( javax.swing ) public JFrame(String title)' - thor


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
Прозорец – клас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 =

slide2
Изпълнение на приложение:

В метода mainсе създава фрейм и се изпълнява

асинхронно в отделна нишка.

public staticvoid main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

new <конструктор на фрейм>();

}

});

}

slide3
Събития
  • Всички събития за компонент
      • ComponentEvent
    • FocusEvent
    • KeyEvent
    • MouseEvent
    • MouseMotionEvent
    • MouseWheelEvent
  • Събития с прозорци
    • клас WindowEvent
      • активен прозорец
      • затваряне при разрушаване
      • затваряне от системното меню
      • неактивен прозорец
      • промяна от икона в нормален вид
      • промяна от нормален вид в икона
      • отваряне на прозорец
slide4
интерфейс WindowListener или адаптерен класWindowAdapter
  • добавяне на слушател lза събитието WindowsEvent към компонентата
  • publicvoid addWindowListener(WindowListener l)
slide5
Менажери на разположението
  • Менажер на разположението
  • обект, който управлява разполагането на компонентите в контейнера;
  • определя размера и разположението на всяка компонента;
  • установява се за контейнер чрез метода
    • publicvoid setLayout(LayoutManager layout)
  • ИнтерфейсLayoutManager(java.awt)
  • дефинира интерфейс за класове, които разполагат компонентите в контейнери.
slide6
Видове менажери
  • BorderLayout
  • BoxLayout
  • CardLayout
  • FlowLayout
  • GridBagLayout
  • GridLayout
  • SpringLayout
  • GroupLayout
slide7
КласBorderLayout(java.awt)
  • Разполага компонентите в пет области:
  • горна PAGE_START
  • долна PAGE_END
  • лява LINE_START
  • дясна LINE_END
  • централна CENTER

Това е подразбиращият се менажер заJFrame.

PAGE_START

CENTER

LINE_START

LINE_END

PAGE_END

slide8
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);

slide9
Клас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 пиксела по подразбиране).

slide10
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);

slide11
Клас 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– хоризонтално/вертикално празно пространство.
slide12
// Установява менажер на разположението

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)

slide13
Бутон– клас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)
slide14
Етикет –класJLabel(javax.swing)

Изобразява област за къс текст, изображение или и двете. Не реагира на входни събития.

public JLabel(String text)

Създава етикет с определен текстtext.

public void setForeground(Color color)

Установява цвета colorна текста на етикет.

slide15
JLabel label

JFrame

JButton button

Пример: Приложение, което при всяко натискане

на бутон променя цвета на текста на етикет в

черен, син, червен. Използва събитиетоActionEvent

заJButton, което се обработва от метода

actionPerformed на интерфейса ActionListener.

slide16
Импорт на пакетитеjava.swing,java.awt иjava.awt.event.
  • Класът ButtonDemo наследява класаJFrameи реализира интерфейсаActionListener.
  • Декларация на променливи
  • а) бутон button;
  • б) етикет label;
  • в) цвят color.
  • Конструктор
    • извиква конструктора на супер класа – прозорец със заглавие „Фрейм“
    • установява завършване на приложението при затваряне на прозореца
    • получава съдържанието на фрейма
    • създава етикет с текст „Добре дошли!“
    • създава бутон с текст „Смени цвета“
    • добавя етикета в горната част на фрейма
    • добавя бутона в долната част на фрейма
    • добавя слушател на събития при натискане на бутон, като
    • самият фрейм е слушател
    • установява размера на фрейма 150x100
    • установява видим фрейм
    • установява черен цвят
    • установява цвета на текста на етикета
slide17
Реализира метода actionPerformed на събитието „натиснат бутон“
    • ако цветът е черен
    • цвят  син
    • в противен случай ако цветът е син
    • цвят  червен
    • в противен случай
    • цвят  черен
    • установява цвета на текста на етикета
  • Реализира методаmain
slide18
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);

}

slide19
// Извиква се автоматично при вдигане на събитието

// „натиснат бутон“

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();

}

});

}

}

ad