Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

34 5 д~рістер 2

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 27.11.2024

2 зертханалық жұмыс.

Басқару элементтері

  1.  Жұмыстың мақсаты

Тұтынушы графикалық интефейсінің құрастырылу принциптерін игеру. Тұтынушы графикалық интефейсін құрастыруды үйрену. Тұтынушы графикалық интерфейсі компоненттері орналасқан пакеттермен және оқиғаларды өңдеу интерфейстерімен танысу.  Батырма, белгі, мәтіндік өріс құрастырып, олармен жұмыс жасауды үйрену.

  1.  Алдын-ала қаралатын материалдар

1. 3-4, 5 дәрістер

2. Х.Дейтел Как программировать на С. Введение в С++ и Java, глава 29, стр.1045-1108

3. Негізгі әдістердің қысқаша сипаттамасы

Java-ның алғашқы версияларында (1.0.x) аппраттық платформалармен байланысты «ауыр» AWT компоненттері қолданылды. Дами келе ешқандай аппраттық платформа және операциялық жүйеге тәуелсіз компоненттер пайда болды. Мұндай компоненттер классы Java тілінде жазылған және  Swing атты кітапханаға біріктірілген. Бұл класстарға  JDK құрамында және жеке JFC (Java Foundation Classes) арқылы да қол жеткізуге болады. Жаңа компоненттермен бірге ескі AWT компоненттерін де қолдануға толық мүмкіндік бар.

Басқару элементтері. AWT пакетіндегі басқару элементтері Component классының мұрағаттары болып саналады. Swing пакетін қолданғанда компоненттер, Container классының туындысы JComponent  классының мұрағаты болып саналады.

Мәтіндік белгілер Label, JLabel - создаются с помощью конструкторов Label(), Label(String str), Label(String str,int alignment) құрастырушыларының көмегімен жасалады.

ТізімдерList және JList.

Айналдыру жолақтарыScrollBar және JScrollBar.

Біржолдық енгізу аумағыTextField және JTextField.

Көпжолдық енгізу аумағы – TextArea және JTextArea.

Батырмалар Button және JButton.

БатырмаларCheckBox және JCheckBox, RadioButton және JRadioButton.

AbstractButton-нан негізгі екі батырмалық класстар мұрағатталады: JButton және JToggleButton. Біріншісі әртүрлі мүмкіндіктері бар қарапайым батырма жасау үшін, ал екіншісі - радиобатырмалар (JRadioButton) және белгіленетін батырмалар (JCheckBox) жасау үшін. Бұл айтылғандардан басқа AbstractButton-нан меню жолдарын құрастыруға арналған JCheckBoxMenuItem және JRadioButtonMenuItem класстары мұрағатталады.

Батырма жасау үшін, белгісі бар JButton құрастырушысын шақырып, батырмаға орналастыру керек. Swing кітапханасында JButton классының қарапайым батырма жасауға арналған бірнеше құрастырушылары бар: JButton(), JButton(String s), JButton(Icon i), JButton(String s, Icon i).

//  # 1 мысал: батырма және оның тәсілдері: MyButtons.java

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class MyButtons extends JFrame implements ActionListener {

String msg;

JButton yes, maybe;

JLabel lbl;

JTextField txt;

MyButtons() {

 yes = new JButton("yes");

       yes.setActionCommand("yes"); //определение команды

 maybe = new JButton("may be");

 lbl = new JLabel("");

 txt = new JTextField(10);

Container c = getContentPane();

 c.setLayout(new FlowLayout());

 c.add(yes);

 c.add(maybe);

 c.add(lbl);

 c.add(txt);

 setSize(200,150);

 setVisible(true);

    yes.addActionListener(this);

    maybe.addActionListener(this);

    addWindowListener(new WindowAdapter(){

  public void windowClosing(WindowEvent e){

   System.exit(0);

  }

 });

}

 public void actionPerformed(ActionEvent e) {

 String str=((JButton) e.getSource()).getText();

 if (str.equals("yes"))

  msg = "Button <yes> is pressed";

 else

  msg = " Button <may be> is pressed ";

 lbl.setText(msg);

  String name=e.getActionCommand(); // извлечение команды

 txt.setText(name);

}

 public static void main(String[] args) {

 new MyButtons();

}

}

 

2.1 сурет. Батырма, белгі және мәтін өрісі бар фрейм

getSource() – оқиға туындатқан объект сілтемесін қайтарады, ол JButton объектіне түрлендіріледі. getText() – батырмадағы мәтінді алады да, setText() тәсілінің көмегімен JLabel объектінің lbl объектіне береді. Нәтижесінде қандай батырманың басылғандығы анықталады. Батырмаға байланысты команда ActionEvent классының getActionCommand() тәсілін шақырады. Жұмыс нәтижесі JTextField компонентінде бейнеленеді.

JComboBox классы ашылатын тізім элементтерін құрастыру үшін қолданылады. Тізім элементін таңдауға болады. Таңдап алынған элементі анықтау үшін getSelectedItem() немесе getSelectedIndex() тәсілін шақыру керек.

// # 2 мысал: Ашылатын тізім: MyComboBox.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyComboBox extends JFrame implements ItemListener{

   JLabel lbl;

   JComboBox cb;

   MyComboBox(){

   lbl = new JLabel("0");

   cb = new JComboBox();//создание объекта

 Container c = getContentPane();

 c.setLayout(new FlowLayout());

//добавление элементов в выпадающий список cb.addItem("11");

 cb.addItem("22");

 cb.addItem("33");

 cb.addItem("44");

 cb.addItemListener(this);

 c.add(cb); //размещение объекта в контейнер

 c.add(lbl);

 setSize(300,100);

 setVisible(true);

 addWindowListener(new WindowAdapter(){

 public void windowClosing(WindowEvent e){

    System.exit(0); }

 });  }

public void itemStateChanged(ItemEvent ie) {

  int arg = Integer.valueOf((String)ie.getItem()).intValue();

 //возведение в квадрат 

 double res = Math.pow(arg, 2);

    lbl.setText(Double.toString(res));

}

public static void main(String[] args) {

 new MyComboBox(); }

}

2.2 сурет. Ашылатын тізім

Келесі мысалда JСheckBox объектісінің қалып-күйінің өзгеруін бақылауға болады.

/* # 3 мысал: Жалауша қалып-күйінің өзгеруін бақылау: MyCheckBox.java */

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class MyCheckBox extends JFrame implements ItemListener{

JCheckBox cb;

JLabel lbl;

MyCheckBox() {

 cb = new JCheckBox();

 lbl = new JLabel("initialization");

Container c = getContentPane();

c.setLayout(new FlowLayout());

 cb.addItemListener(this);

c.add(cb);

c.add(lbl);

setSize(200,100);

setVisible(true);

 addWindowListener(new WindowAdapter(){

  public void windowClosing(WindowEvent e){

    System.exit(0);  }

  });

}

 public void itemStateChanged(ItemEvent ie) {

    String msg;

 if(ie.getStateChange() == ItemEvent.SELECTED)

   msg = "True";

 else   msg = "False";

   lbl.setText(msg);    }

 

 public static void main(String[] args) {

 new MyCheckBox(); }

}

                                   2.3 сурет. JCheckBox басқару элементі

Егер «батырмалар тобы» болса, онда  RadioButton классының объектісін ButtonGroup қосу керек. Батырмалар тобы makePanel() тәсілінің көмегімен жасалып, JPanel классының объектісіне қосылады.

/* # 4 мысал: батырмалар мен жалаушалар түрлері: DiffButtons.java */

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.border.*;

import java.lang.reflect.*;

public class DiffButtons extends JFrame {

   static String[] str = {"-1-", "-2-", "-3-"};

 DiffButtons() {

 Container c = getContentPane();

    c.setLayout(new FlowLayout());

    c.add(makePanel(JToggleButton.class, str));

    c.add(makePanel(JCheckBox.class, str));

    c.add(makePanel(JRadioButton.class, str));

setSize(200,250);

setVisible(true);

addWindowListener(new WindowAdapter(){

  public void windowClosing(WindowEvent e){

    System.exit(0); }

  });  }

 static JPanel makePanel(Class aCl, String[] str) {

    ButtonGroup b = new ButtonGroup();

    JPanel p = new JPanel();

    String title = aCl.getName();

    title = title.substring(title.lastIndexOf('.')+1);

          p.setBorder(new TitledBorder(title));

 for(int j = 0; j < str.length; j++) {

     AbstractButton abs = new JButton("ошибка");

 try {

    Constructor cons = aCl.getConstructor(

  new Class[] { String.class }); System.out.println(cons);

    abs = (AbstractButton)cons.newInstance(

  new Object[]{str[j]});

 } catch(Exception e) {

 System.err.println(e + "/n нельзя создать: " + aCl);

 }

       b.add(abs);

       p.add(abs);

      }

 return p;

    }

 public static void main(String[] args) {

 new DiffButtons(); }   } 

2.4 сурет. Батырмалар тобы

Бордюр тақырыбы класс атынан алынады. AbstractButton JButton көмегімен инициализацияланады. getConstructor() тәсіл аргуметтер массивін қабылдайтын Constructor объектін туындатады. Бұдан кейін батырмалар экземплярын жасайтын newInstance() тәсілі шақырылады.

Қосымшаға түрлі меню жолдарын және сұқбат терезелерін қосу үшін JOptionPane классының кеңейтілген мүмкіндіктерін қолдану керек. Бұл мүмкіндіктер showИмяDialog(параметр) классының статистикалық тәсілдер көмегімен жүзеге асырылады: showConfirmDialog(), showMessageDialog(), showInputDialog() и showOptionDialog().

//# 5 мысал: еркін диалог: DemoJDialog.java

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class MyDialog extends JDialog implements ActionListener{

JButton cancel = new JButton("Cancel");

JButton ok = new JButton("Ok");

JFrame parent;

 public MyDialog(JFrame parent, String name) {

 super(parent, name, true);

 this.parent = parent;

 Container c = getContentPane();

 c.setLayout(new FlowLayout());

 c.add(new JLabel("Exit ?"));

 ok.addActionListener(this);

 cancel.addActionListener(this);

 c.add(ok);

 c.add(cancel);

 setSize(200, 100);

 setVisible(true); }

 public void actionPerformed(ActionEvent e) {

  dispose();

 if(e.getActionCommand().equals("Ok"))

  parent.dispose(); }   }

public class DemoJDialog extends JFrame {

 private JButton jButton = new JButton("Dialog");

DemoJDialog() {

 super("My DialogFrame");

 Container c = getContentPane();

 c.setLayout(new FlowLayout());

 jButton.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent e){

 JDialog jDialog = new MyDialog(DemoJDialog.this, "MyDialog");

  }

 });

 c.add(jButton);  }

 public static void main(String[] args) {

 DemoJDialog f = new DemoJDialog();

 f.setDefaultCloseOperation(EXIT_ON_CLOSE);

 f.setSize(200, 120);

 f.setVisible(true);  }   }

2.5 сурет. Еркін диалог

 

4. Жеке тапсырма нұсқалары

  1.  Мәтіндік өрісі (JTextField), батырмасы (JButton) және белгісі (JLabel) бар қосымша құрастырыңыз. Белгіде мәтіндік өрісте (например, «Введен текст…») немесе барымамен («Нажата кнопка») орындалған іс-әрекеттер бейнеленетін болсын.
  2.  Қосымша құрастырып оған екі панель (JPanel) және батырма (JButton - «Скопировать»). орналастырыңыз. Бірінші панельде мәтін енгізу өрісі (JTextField) және белгі (JLabel - «Поле ввода»), ал екінші панельде мәтін шығару өрісі және белгі («Поле вывода»). болатын болсын;
  3.  Алдыңғы (2-ші) есепті «Скопировать» батырмасына басқан кезде енгізу өрісіндегі мәтін шығару өрісіне көшіріліп, енгізу өрісі тазаланатындай етіп түрлендіріңіз.
  4.  Бірнеше батырмасы бар қосымша құрастырыңыз. Бірінше батырмаға басқанда, батырмадағы жазу екінші батырмаға берілетін болсын.
  5.  Ашылатын тізімі бар қосымша құрастырыңыз. Тізім элементін таңдаған кезде қосымшада   GIF-форматты сурет пайда болатын болсын.
  6.  Ішінде қозғалып жүрген тіктөртбұрышы (дөңгелек, эллипс, кесінді) бар қосымша құрастырыңыз. Тышқан қолтетігімен бір шерткенде объектің жылжу бағыты қарама-қарсы бағытқа өзгеретін болсын, ал екінші рет шерткенде фон түсі өзгеретін болсын.
  7.  Дөңгелектің суреті бар фрейм құрастытыңыз. 1-ден 9-ға дейінгі батырмаларға басқан кезе  дөңгелектің ұзындығы өзгеретін болсын.
  8.  «вверх», «вниз», «вправо», «влево» - төрт батырмасы бар фрейм құрастырыңыз. Батырмаға басқан кезде фреймдегі кесінді сәйкес бағытта жылжитын болсын.
  9.  Фрейм құрастырып, оған бірнеше дөңгелек орналастырыңыз. Объект тышқан қолтетігінің көрсеткішінен «қашатын» болсын.  Тышқан қолтетігі жақындаған кеде фреймнің басқа жетінен пайда болсын.
  10.  Графикалық объекті бар фрейм құрастырыңыз. Тышқан қолтетігінің көрсеткіші экран жақтауында болған кезде объект көрсеткішке қарай жылжыйтын болсын.
  11.  Алдыңға есепті объектілер саны фрейм көлеміне тәуелді болатындай етіп өзгертіңіз. Фрейм көлемі ұлғайғанда объектілер саны да көбейуі керек.

5. Жұмысты тапсыруға қойылатын талаптар

Зертханалық жұмыста:

  •  программа мәтіні;
  •  программа жұмысының нәтижесі болуы керек  




1. тема Глагол финансировать означает снабжать обеспечивать деньгами
2. Тема 14 Абсолютні і відносні величини Мета-ознайомлення з абсолютними і відносними величинами Пла
3. . Совиная почта Гарри Поттер необычный мальчик во всех отношениях
4. При этом материалы защищают конструкции от воздействия высоких температур и сохраняют все технические хара
5. ВМЕСТО ПРЕДИСЛОВИЯ Единственная радость нашей жизни
6. Современное исламское возрождение и его особенности
7. Літопис руський свідчить- Коли Ігор виріс він ходив у походи вслід за Олегом і кожен слухався його
8. по теме- Редактирование научного текста Выполнили- студентки группы 27 Насырова Эл
9. Третейские суды в Российской Федерации.html
10. Кушнаренковский сельскохозяйственный колледж Методические указания по выполнению выпу
11. Возникновение греческой культуры и ее периодизация, культура греческого полиса
12. і Пасля кастрычніка 1917 г
13. на тему Сущность и значение правового регулирования рабочего времени
14. Зоология
15. Словацкий Юлиуш
16. за- объема выпуска продукции в целом по предприятию ; ее структуры ; уровня переменных затрат на един
17. Учет и анализ основных фондов сельскохозяйственных организаций
18. Надежда сердца Под грозовым небом Моей души Вдалеке ~ парус
19. Требования к сцеплению
20. Познавательное совершенствование детей седьмого года как необходимое условие подготовки к школе