​ПРАКТИКА ПРОГРАМУВАННЯ МОВОЮ JAVA

13 січня 2022
MORENKO OLEKSII

Робота з бібліотекою awt.* - графічний інтерфейс програми Цифрова фотографія

(проєкт StudioDigitalPhotoApp)

//------------------------------------------------------------------------

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.*;

public class StudioDigitalPhotoApp {

    public static void main(String[] args) throws FileNotFoundException {
        new StudioDigitalPhoto();
    }

    private static class StudioDigitalPhoto extends Frame implements
           
WindowListener {
        @Override
        public void windowOpened(WindowEvent e) {

        }

        @Override
        public void windowClosing(WindowEvent e) {
            dispose();
            System.exit(0);
        }

        @Override
        public void windowClosed(WindowEvent e) {

        }

        @Override
        public void windowIconified(WindowEvent e) {

        }

        @Override
        public void windowDeiconified(WindowEvent e) {

        }

        @Override
        public void windowActivated(WindowEvent e) {

        }

        @Override
        public void windowDeactivated(WindowEvent e) {

        }

        public String ms,t,z, text;

        public int RH,RW,minx,miny,maxx,maxy,cx,cy,dx,dy;
        public int x,y,x1,y1,x2,y2,x3,y3,x4,y4;
        public float wt=1.5f;

        public JTextField input=new JTextField("1");
        public JButton button1=new JButton("OK");

        public JRadioButton rad1=new JRadioButton("9x12");
        public JRadioButton rad2=new JRadioButton("10x15");
        public JRadioButton rad3=new JRadioButton("18x24");

        public Image pic;

        public double cena,sum;
        public int counter;

        public void paint(Graphics g)
        {
            Dimension rc=getSize();
            Insets in=getInsets();
            RH=rc.width;
            RW=rc.height;
            minx=in.left;
            maxx=RH-in.right;
            miny=in.top;
            maxy=RW-in.bottom;
            cx=Math.abs(maxx-minx)/2;
            cy=Math.abs(maxy-miny)/2;
            dx=dy=25;
            g.setColor(new Color(236, 236, 236));
            g.fillRect(0,0,maxx,maxy);


            g.setColor(new Color(0, 0, 0));
            text="Формати фото: ";
            g.setFont(new Font("Trebuchet Ms",Font.BOLD,24));
            g.drawString(text,minx+70,miny+35);

            rad1.setBounds(minx+70,miny+50,100,30);
            pic=new  ImageIcon("res\\9x12.jpg").getImage();
            g.drawImage(pic,minx+70,miny+50,null);

            rad2.setBounds(minx+70,miny+90,100,30);
            pic=new  ImageIcon("res\\10x15.jpg").getImage();
            g.drawImage(pic,minx+70,miny+90,null);

            rad3.setBounds(minx+70,miny+130,100,30);
            pic=new  ImageIcon("res\\18x24.jpg").getImage();
            g.drawImage(pic,minx+70,miny+130,null);


            text="Кількість знімків:";
            g.setFont(new Font("Trebuchet Ms",Font.BOLD,24));
            g.drawString(text,minx+70,miny+190);

            input.setBounds(minx+275,miny+168,100,30);
            pic=new  ImageIcon("res\\input.jpg").getImage();
            g.drawImage(pic,minx+275,miny+168,null);

            button1.setBounds(minx+70,miny+210,100,30);
            pic=new  ImageIcon("res\\ok.jpg").getImage();
            g.drawImage(pic,minx+70,miny+210,null);

            Font fnt=new Font("Trebuchet Ms",Font.BOLD,24);
            rad1.setFont(fnt);
            rad2.setFont(fnt);
            rad3.setFont(fnt);
            input.setFont(fnt);
            button1.setFont(fnt);

            this.setLayout(null);
            this.add(rad1);
            this.add(rad2);
            this.add(rad3);
            this.add(input);
            this.add(button1);
            this.setVisible(true);

            ButtonGroup group=new ButtonGroup();
            group.add(rad1);
            group.add(rad2);
            group.add(rad3);

            rad1.setSelected(true);
            rad2.setSelected(false);
            rad3.setSelected(false);

            g.setFont(new Font("Trebuchet Ms",Font.BOLD,24));
            text="Ціна: 8.5 грн";
            g.drawString(text,minx+70,miny+270);

            text="Кількість: 1 шт";
            g.drawString(text,minx+70,miny+300);

            text="Вартість замовлення: 8.5 грн";
            g.drawString(text,minx+70,miny+330);

            button1.addActionListener(new ButtonListEvent());


        }



        public StudioDigitalPhoto() throws FileNotFoundException {
            super("Цифрова фотографія");
            addWindowListener(this);
            setLayout(null);
            setLocation(80,5);
            setSize(600,400);
            this.setResizable(false);
            show();
        }


        private class ButtonListEvent implements ActionListener {
            @Override
            public void actionPerformed(ActionEvent e) {
                counter= Integer.parseInt(input.getText());
                if(rad1.isSelected()) cena=8.5f;
                else if(rad2.isSelected()) cena=10.0f;
                else if(rad3.isSelected()) cena=15.5f;
                sum=counter*cena;

                /*Graphics g = null;
                g.setFont(new Font("Trebuchet Ms",Font.BOLD,24));
                text="
Ціна: "+cena+" грн";
                g.drawString(text,minx+70,miny+270);

                text="
Кількість: "+counter+" шт";
                g.drawString(text,minx+70,miny+300);

                text="
Вартість замовлення: "+sum+" грн";
                g.drawString(text,minx+70,miny+330);*/

           
}
        }
    }
}

Якщо ви помітили помилку чи неточність, виділіть фрагмент тексту та натисніть Ctrl+Enter.

 

Умови використання матеріалів сайту

Використання матеріалів можливе лише за умови активного гіперпосилання на UaModna ( див. Правила* ). Для генерації коду посилання натисніть на кнопку

Думки, позиції, уподобання та заклики, опубліковані на нашому сайті, є власністю авторів і можуть не співпадати з поглядами редакції uamodna.com

Трендовий інтернет-магазин шпалер та фарб
Яким би не був за ціновим сегментом ремонт, не можна обійтися без декоративного оздоблення, яке підвищить зносостійкість поверхонь, підкреслить вибраний стиль, продовжить термін експлуатації приміщень.
Читати більше