Прозорец
This presentation is the property of its rightful owner.
Sponsored Links
1 / 19

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


  • 80 Views
  • Uploaded on
  • Presentation posted in: General

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

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.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

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


Jframe javax swing public jframe string title

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

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

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

public staticvoid main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

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

}

});

}


Jframe javax swing public jframe string title

  • Събития

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

    • ComponentEvent

  • FocusEvent

  • KeyEvent

  • MouseEvent

  • MouseMotionEvent

  • MouseWheelEvent

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

    • клас WindowEvent

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

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

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

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

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

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

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


  • Jframe javax swing public jframe string title

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

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

    • publicvoid addWindowListener(WindowListener l)


    Jframe javax swing public jframe string title

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

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

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

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

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

      • publicvoid setLayout(LayoutManager layout)

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

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


    Jframe javax swing public jframe string title

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

    • BorderLayout

    • BoxLayout

    • CardLayout

    • FlowLayout

    • GridBagLayout

    • GridLayout

    • SpringLayout

    • GroupLayout


    Jframe javax swing public jframe string title

    • КласBorderLayout(java.awt)

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

    • горнаPAGE_START

    • долнаPAGE_END

    • ляваLINE_START

    • дяснаLINE_END

    • централнаCENTER

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

    PAGE_START

    CENTER

    LINE_START

    LINE_END

    PAGE_END


    Jframe javax swing public jframe string title

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


    Jframe javax swing public jframe string title

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


    Jframe javax swing public jframe string title

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


    Jframe javax swing public jframe string title

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


    Jframe javax swing public jframe string title

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

    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)


    Jframe javax swing public jframe string title

    Бутон– клас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)


    Jframe javax swing public jframe string title

    Етикет –класJLabel(javax.swing)

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

    public JLabel(String text)

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

    public void setForeground(Color color)

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


    Jframe javax swing public jframe string title

    JLabel label

    JFrame

    JButton button

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

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

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

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

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


    Jframe javax swing public jframe string title

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

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

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

    • а) бутон button;

    • б) етикет label;

    • в) цвят color.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


    Jframe javax swing public jframe string title

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

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

      • цвят  син

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

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

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

      • цвят  черен

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

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


    Jframe javax swing public jframe string title

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

    }


    Jframe javax swing public jframe string title

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

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

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

    }

    });

    }

    }


  • Login