Прозорец
Download
1 / 19

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


  • 100 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

Прозорец – клас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 =


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

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

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

public staticvoid main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

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

}

});

}


  • Събития

  • Всички събития за компонент

    • ComponentEvent

  • FocusEvent

  • KeyEvent

  • MouseEvent

  • MouseMotionEvent

  • MouseWheelEvent

  • Събития с прозорци

    • клас WindowEvent

      • активен прозорец

      • затваряне при разрушаване

      • затваряне от системното меню

      • неактивен прозорец

      • промяна от икона в нормален вид

      • промяна от нормален вид в икона

      • отваряне на прозорец


    • интерфейс WindowListener или адаптерен класWindowAdapter

    • добавяне на слушател lза събитието WindowsEvent към компонентата

    • publicvoid addWindowListener(WindowListener l)


    • Менажери на разположението

    • Менажер на разположението

    • обект, който управлява разполагането на компонентите в контейнера;

    • определя размера и разположението на всяка компонента;

    • установява се за контейнер чрез метода

      • publicvoid setLayout(LayoutManager layout)

    • ИнтерфейсLayoutManager(java.awt)

    • дефинира интерфейс за класове, които разполагат компонентите в контейнери.


    Видове менажери

    • BorderLayout

    • BoxLayout

    • CardLayout

    • FlowLayout

    • GridBagLayout

    • GridLayout

    • SpringLayout

    • GroupLayout


    • КласBorderLayout(java.awt)

    • Разполага компонентите в пет области:

    • горна PAGE_START

    • долна PAGE_END

    • лява LINE_START

    • дясна LINE_END

    • централна CENTER

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

    PAGE_START

    CENTER

    LINE_START

    LINE_END

    PAGE_END


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


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


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


    • Клас 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– хоризонтално/вертикално празно пространство.


    // Установява менажер на разположението

    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)


    Бутон разположението– клас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)


    Етикет разположението–класJLabel(javax.swing)

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

    public JLabel(String text)

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

    public void setForeground(Color color)

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


    JLabel label разположението

    JFrame

    JButton button

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

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

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

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

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


    • Импорт на пакетите разположениетоjava.swing,java.awt иjava.awt.event.

    • Класът ButtonDemo наследява класаJFrameи реализира интерфейсаActionListener.

    • Декларация на променливи

    • а) бутон button;

    • б) етикет label;

    • в) цвят color.

    • Конструктор

      • извиква конструктора на супер класа – прозорец със заглавие „Фрейм“

      • установява завършване на приложението при затваряне на прозореца

      • получава съдържанието на фрейма

      • създава етикет с текст „Добре дошли!“

      • създава бутон с текст „Смени цвета“

      • добавя етикета в горната част на фрейма

      • добавя бутона в долната част на фрейма

      • добавя слушател на събития при натискане на бутон, като

      • самият фрейм е слушател

      • установява размера на фрейма 150x100

      • установява видим фрейм

      • установява черен цвят

      • установява цвета на текста на етикета


    • Реализира метода разположениетоactionPerformed на събитието „натиснат бутон“

      • ако цветът е черен

      • цвят  син

      • в противен случай ако цветът е син

      • цвят  червен

      • в противен случай

      • цвят  черен

      • установява цвета на текста на етикета

    • Реализира методаmain


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

    }


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

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

    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