Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7946049
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T01:02:21+00:00 2026-06-04T01:02:21+00:00

I got an assignment that i have to make a programm in Java that

  • 0

I got an assignment that i have to make a programm in Java that takes an Image.Creates 3 Buttons named(Align left,right and center).2 textfields Width and Height that i can input numbers there and a button resize.The 4 buttons(align left,right,center and resize) have to change the image place to left right or center and resize the image as the numbers were given respectively

enter image description here

I have written the code just for going left but i cant figure what to do…I also have no idea what to do on resizing…Can someone help me?

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class Destructor extends JFrame implements ActionListener {

    private JButton red, blue, white, resize;

    public Destructor(String title) {
        super(title);
        Container contentPane = this.getContentPane();
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        red = new JButton("Align Left");
        //red.addActionListener(this);
        blue = new JButton("Align Center");
        blue.addActionListener(this);
        white = new JButton("Align Right");
        white.addActionListener(this);
        //read the Image
        // try {                
        // BufferedImage pic1 = ImageIO.read(new File("PewPew.jpg"));
        //JLabel picLabel = new JLabel(new ImageIcon( pic1 ));
        //add( picLabel );
        ImageIcon pic1 = new ImageIcon("PewPew.jpg");
        add(new JLabel(pic1));
        // } catch (IOException ex) {
        // handle exception...
        // }

        //Action LIsteners
        //add the buttons to the frame
        JPanel north = new JPanel();
        north.add(red);
        north.add(blue);
        north.add(white);
        contentPane.add(north, BorderLayout.NORTH);
        //THe Under Panel
        JPanel south = new JPanel();
        south.setLocation(250, 30);
        resize = new JButton("Resize");
        JLabel Width = new JLabel("Width :");
        JLabel Height = new JLabel("Height :");
        //The text field
        JTextField times = new JTextField();
        JTextField times2 = new JTextField();
        Width.setLabelFor(times);
        Height.setLabelFor(times2);
        Width.setLocation(120, 0);

        south.add(Width);
        south.add(times, BorderLayout.NORTH);
        south.add(Height);
        south.add(times2, BorderLayout.SOUTH);
        south.add(resize);
        contentPane.add(south, BorderLayout.SOUTH);
        GridLayout lay2 = new GridLayout(3, 2);
        south.setLayout(lay2);

        //create a menu bar and attach it to this JFrame
        JMenuBar menuBar = new JMenuBar();
        this.setJMenuBar(menuBar);

        JMenu fileMenu = new JMenu("Options");

        menuBar.add(fileMenu);

        JMenuItem redMenuItem = new JMenuItem("Reset");

        fileMenu.add(redMenuItem);



    }
//Trying to move the picture to the left
    public void actionPerformed(ActionEvent a) {
        contentPane.add(pic1, BorderLayout.NORTH);
    }

    public static void main(String[] args) {
        Destructor f = new Destructor("Image App");
        f.setSize(600, 600);
        f.setVisible(true);
    }
}

EDIT: I made a program that changes the Logo of the site with the help of trashgod
Also i tried to change it a bit by changing the URL image loading with my image by doing
imageLabel = new JLabel(new ImageIcon("PewPew.jpg")); and it works too.The Resize is gonna be done kinda the same way that its aligned left though i should “link” the text field numbers right?I need to also make a setPreferedSize and somehow get the width and height of textfields?

import java.awt.*;
import java.awt.event.*;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.*;

/** @see http://stackoverflow.com/a/10610126/230513 */
public class AlignImage extends JPanel {

    private JPanel controlPanel = new JPanel();
    private JLabel imageLabel;

    public AlignImage() {
        super(new GridLayout());
        try {
            imageLabel = new JLabel(new ImageIcon(new URL(
                "http://sstatic.net/stackoverflow/img/logo.png")));
        } catch (MalformedURLException ex) {
            ex.printStackTrace(System.err);
        }
        this.add(imageLabel);
        controlPanel.add(new JButton(new AbstractAction("Align Left") {

            @Override
            public void actionPerformed(ActionEvent e) {
                align(JLabel.LEFT);
            }
        }));
          controlPanel.add(new JButton(new AbstractAction("Align Center") {

            @Override
            public void actionPerformed(ActionEvent e) {
                align(JLabel.CENTER);
            }
        }));
        controlPanel.add(new JButton(new AbstractAction("Align Right") {

            @Override
            public void actionPerformed(ActionEvent e) {
                align(JLabel.RIGHT);
            }
        }));


    }

    @Override
    public Dimension getPreferredSize() {
        int w = 3 * imageLabel.getIcon().getIconWidth() / 2;
        int h = 3 * imageLabel.getIcon().getIconHeight() / 2;
        System.out.println(w + " " + h);
        return new Dimension(w, h);
    }

    private void align(int alignment) {
        imageLabel.setHorizontalAlignment(alignment);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame f = new JFrame("Align Left");
                f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                AlignImage ai = new AlignImage();
                f.add(ai, BorderLayout.CENTER);
                f.add(ai.controlPanel, BorderLayout.NORTH);
                f.pack();
                f.setLocationRelativeTo(null);
                f.setVisible(true);
                JFrame f1 = new JFrame("Align Center");
                f1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                 JFrame f2 = new JFrame("Align Right");
                f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

                f2.add(ai, BorderLayout.CENTER);
                f2.add(ai.controlPanel, BorderLayout.NORTH);
                f2.pack();
                f2.setLocationRelativeTo(null);
                f2.setVisible(true);
                f1.add(ai, BorderLayout.CENTER);
                f1.add(ai.controlPanel, BorderLayout.NORTH);
                f1.pack();
                f1.setLocationRelativeTo(null);
                f1.setVisible(true);
               ;

            }
        });

    }
}

Edit 2: I made a programm that comes closer to what i need to do.I try to add the menu too like the original programm MenuBar menuBar = new JMenuBar();

this.setJMenuBar(menuBar);
   JMenu fileMenu = new JMenu("Options");
      menuBar.add(fileMenu);
     JMenuItem redMenuItem = new JMenuItem("Reset");
    fileMenu.add(redMenuItem);

and i get an error that does not recognize this.setJMenuBar.Also i tried many ways and i cant make the 3 buttons go north and the resize and textfields go south…What i am doing wrong?Code:

import java.awt.*;
import java.awt.event.*;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.*;

/** @see http://stackoverflow.com/a/10610126/230513 */
public class AlignImage extends JPanel {

    private JPanel controlPanel = new JPanel();
    private JLabel imageLabel;

    public AlignImage() {
        super(new GridLayout());

            imageLabel = new JLabel(new ImageIcon("PewPew.jpg"));

        this.add(imageLabel);
        controlPanel.add(new JButton(new AbstractAction("Align Left") {

            @Override
            public void actionPerformed(ActionEvent e) {
                align(JLabel.LEFT);
            }
        }));
          controlPanel.add(new JButton(new AbstractAction("Align Center") {

            @Override
            public void actionPerformed(ActionEvent e) {
                align(JLabel.CENTER);
            }
        }));
        controlPanel.add(new JButton(new AbstractAction("Align Right") {

            @Override
            public void actionPerformed(ActionEvent e) {
                align(JLabel.RIGHT);
            }
        }));

        JPanel south= new JPanel();

    JButton resize=new JButton("Resize");
   JLabel Width = new JLabel("Width :");
   JLabel Height = new JLabel("Height :");
   //The text field
   JTextField times= new JTextField();
   JTextField times2= new JTextField();
   Width.setLabelFor(times);
   Height.setLabelFor(times2);


  south.add(Width);
  south.add(times, BorderLayout.NORTH);
  south.add(Height);
  south.add(times2, BorderLayout.SOUTH);
  south.add(resize);
   controlPanel.add(south, BorderLayout.SOUTH);
    GridLayout lay2 = new GridLayout(3,2); south.setLayout(lay2);
        JMenuBar menuBar = new JMenuBar();

    }

    @Override
    public Dimension getPreferredSize() {
        int w = 3 * imageLabel.getIcon().getIconWidth() / 2;
        int h = 3 * imageLabel.getIcon().getIconHeight() / 2;
        System.out.println(w + " " + h);
        return new Dimension(w, h);
    }

    private void align(int alignment) {
        imageLabel.setHorizontalAlignment(alignment);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame f = new JFrame("Align Left");
                f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                AlignImage ai = new AlignImage();
                f.add(ai, BorderLayout.CENTER);
                f.add(ai.controlPanel, BorderLayout.NORTH);
                f.pack();
                f.setLocationRelativeTo(null);
                f.setVisible(true);
                JFrame f1 = new JFrame("Align Center");
                f1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                 JFrame f2 = new JFrame("Align Right");
                f2.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

                f2.add(ai, BorderLayout.CENTER);
                f2.add(ai.controlPanel, BorderLayout.NORTH);
                f2.pack();
                f2.setLocationRelativeTo(null);
                f2.setVisible(true);
                f1.add(ai, BorderLayout.CENTER);
                f1.add(ai.controlPanel, BorderLayout.NORTH);
                f1.pack();
                f1.setLocationRelativeTo(null);
                f1.setVisible(true);
               JFrame f3 = new JFrame("Res");
                f3.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

                f3.add(ai, BorderLayout.CENTER);
                f3.add(ai.controlPanel, BorderLayout.SOUTH);
                f3.pack();
                f3.setLocationRelativeTo(null);
                f3.setVisible(true);

            }
        });

    }
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T01:02:22+00:00Added an answer on June 4, 2026 at 1:02 am

    Two approaches are common:

    • Given a suitable layout manager, use one of the constants JLabel.LEFT, JLabel.CENTER or JLabel.RIGHT in your call to setHorizontalAlignment(); follow this with validate() and repaint(), if required.

    • Override paintComponent() and use drawImage() to render the Image at the desired coordinates. Scaling is automatic. Left alignment is easy:

      int w = Integer.valueOf(width.getText()); // formerly times
      int h = Integer.valueOf(height.getText()); // formerly times2
      g.drawImage(image, 0, 0, w, h, null);
      

      Center, right and exception handling are left as an exercise.

    Addendum: The sscce below illustrates the first approach for a single alignment; try adding the other two buttons using the existing button as a guide.

    import java.awt.*;
    import java.awt.event.*;
    import java.net.MalformedURLException;
    import java.net.URL;
    import javax.swing.*;
    
    /** @see http://stackoverflow.com/a/10610126/230513 */
    public class AlignImage extends JPanel {
    
        private JPanel controlPanel = new JPanel();
        private JLabel imageLabel;
    
        public AlignImage() {
            super(new GridLayout());
            try {
                imageLabel = new JLabel(new ImageIcon(new URL(
                    "http://sstatic.net/stackoverflow/img/logo.png")));
            } catch (MalformedURLException ex) {
                ex.printStackTrace(System.err);
            }
            this.add(imageLabel);
            controlPanel.add(new JButton(new AbstractAction("Align Left") {
    
                @Override
                public void actionPerformed(ActionEvent e) {
                    align(JLabel.LEFT);
                }
            }));
        }
    
        @Override
        public Dimension getPreferredSize() {
            int w = 3 * imageLabel.getIcon().getIconWidth() / 2;
            int h = 3 * imageLabel.getIcon().getIconHeight() / 2;
            System.out.println(w + " " + h);
            return new Dimension(w, h);
        }
    
        private void align(int alignment) {
            imageLabel.setHorizontalAlignment(alignment);
        }
    
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
    
                @Override
                public void run() {
                    JFrame f = new JFrame("Align Left");
                    f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                    AlignImage ai = new AlignImage();
                    f.add(ai, BorderLayout.CENTER);
                    f.add(ai.controlPanel, BorderLayout.SOUTH);
                    f.pack();
                    f.setLocationRelativeTo(null);
                    f.setVisible(true);
                }
            });
    
        }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I got an assignment that I find it quite challenging and I have no
I have an assignment problem that i can't manage to fix and got totally
So I've got an assignment that takes two inputs, males and females, and outputs
I have an assignment and i got a library including an interface class. [InfoItem]
A few days ago I got an assignment to make (amateur) model of my
I've got a homework assignment where I have a base class Package, and two
I got an assignment where I have to implement a custom call forwarding system
I have got an assignment in which I have to implement a AS3 wrapper
There are a few concepts about iPhone memory management that have got me confused,
i have an erd for a school assignment that contains a many to many

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.