Question: Implement a JSlider in Java which changes the size of the image depending on the value selected: BASE CODE: Slideshow.java import java.util.*; import java.awt.*; import
Implement a JSlider in Java which changes the size of the image depending on the value selected:
BASE CODE:
Slideshow.java
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import java.awt.event.ItemListener;
import java.util.concurrent.TimeUnit;
public class Slideshow extends JFrame {
private static final Dimension WindowSize = new Dimension(800,600);
private JComboBox imagesComboBox;
private JLabel label;
private JPanel buttonPanel;
private JButton buttons[];
private String names[] = {"Cars", "Trees", "Sports"};
private int inc = 0, reset = 0;
private Icon icons[] = {new ImageIcon("nissan.jpg"),new ImageIcon("ferrari.jpg"),new ImageIcon("lamborghini.jpg"), new ImageIcon("tree1.jpg"),new ImageIcon("tree2.jpg"), new ImageIcon("tree3.jpg"),new ImageIcon("basketball.jpg"),new ImageIcon("soccer.jpg"),new ImageIcon("NFL.jpg")};
public Slideshow() throws InterruptedException {
JSlider slider = new JSlider(JSlider.HORIZONTAL);
slider.setMajorTickSpacing(20);
slider.setPaintLabels(true);
slider.setPaintTicks(true);
setLayout(new FlowLayout());
this.add(slider);
Dimension screensize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
int x = (int) screensize.getWidth()/2 - WindowSize.width/2;
int y = (int) screensize.getHeight()/2 - WindowSize.height/2;
setBounds(x, y, WindowSize.width, WindowSize.height);
setVisible(true);
this.setTitle("Slideshow");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BorderLayout layout = new BorderLayout(5,5);
Container container = getContentPane();
container.setLayout(layout);
buttons = new JButton[3];
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
JButton green = new JButton( "Green");
JButton blue = new JButton( "Blue");
JButton yellow = new JButton( "Yellow");
ButtonHandler handler = new ButtonHandler();
green.addActionListener(handler);
blue.addActionListener(handler);
yellow.addActionListener(handler);
buttonPanel.add(green);
buttonPanel.add(blue);
buttonPanel.add(yellow);
container.add( buttonPanel, BorderLayout.SOUTH );
JPanel ComboBox = new JPanel(new FlowLayout(FlowLayout.CENTER));
imagesComboBox = new JComboBox(names);
imagesComboBox.setMaximumRowCount(3);
imagesComboBox.addItemListener( new ItemListener()
{
public void itemStateChanged( ItemEvent event )
{
if ( event.getStateChange() == ItemEvent.SELECTED )
if(imagesComboBox.getSelectedIndex() == 0) {
label.setIcon(icons[imagesComboBox.getSelectedIndex()] );
inc = 0;
reset = 1;
}
if (imagesComboBox.getSelectedIndex() == 1) {
inc = 2;
label.setIcon(icons[3] );
reset = 1;
}
else if (imagesComboBox.getSelectedIndex() == 2){
inc = 4;
label.setIcon(icons[6] );
reset = 1;
}
}
}
);
ComboBox.add(imagesComboBox);
container.add( ComboBox, BorderLayout.NORTH);
// set up JLabel to display ImageIcons
while(true) {
reset = 0;
int i = imagesComboBox.getSelectedIndex() + inc;
for(i = imagesComboBox.getSelectedIndex() + inc; i < imagesComboBox.getSelectedIndex() + inc + 3; i++) {
label = new JLabel( icons[ i ] );
container.add( label );
setVisible( true );
TimeUnit.SECONDS.sleep(2);
container.remove(label);
if(reset == 1){
i = imagesComboBox.getSelectedIndex() + inc;
reset = 0;
}
}
}
}
public static void main( String args[] ) throws InterruptedException
{
Slideshow application = new Slideshow();
application.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE );
}
private class ButtonHandler implements ActionListener {
// handle button event
public void actionPerformed( ActionEvent event )
{
if(event.getActionCommand().equals("Green")) {
getContentPane().setBackground(Color.GREEN);
}
else if(event.getActionCommand().equals("Blue")) {
getContentPane().setBackground(Color.BLUE);
}
else if(event.getActionCommand().equals("Yellow")) {
getContentPane().setBackground(Color.YELLOW);
}
}
}
}
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
