​ПРАКТИКА ПРОГРАМУВАННЯ МОВОЮ 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