In: Computer Science
Put a JTextField in the north of the JFrame along with a JLabel that says: Year
Put a JSlider, vertically in the east side of the JFrame
Hints
Have typing in the TextField change the JSlider.
Hints
Add JRadioButtons with labels that are color names
Hints
//Java code
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main extends JFrame {
private JSlider slider;
private JTextField textField;
private JLabel label;
private JRadioButton rdbRed,rdbYellow, rdbBlue;
private ButtonGroup buttonGroup;
public Main()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
setSize(300,500);
setTitle("JSlider");
setVisible(true);
//text field
textField = new JTextField(10);
//Label
label = new JLabel("Choose Year: ");
JPanel panel = new JPanel(new BorderLayout());
panel.setOpaque(true);
panel.add(label,BorderLayout.NORTH);
panel.add(textField,BorderLayout.SOUTH);
add(panel,BorderLayout.NORTH);
//Radio Buttons
rdbRed = new JRadioButton("RED");
rdbBlue = new JRadioButton("BLUE");
rdbYellow = new JRadioButton("YELLOW");
rdbRed.setOpaque(false);
rdbBlue.setOpaque(false);
rdbYellow.setOpaque(false);
//add to group
buttonGroup = new ButtonGroup();
buttonGroup.add(rdbBlue);
buttonGroup.add(rdbRed);
buttonGroup.add(rdbYellow);
//Add to panel
JPanel panel1 = new JPanel(new BorderLayout());
panel1.setOpaque(false);
panel1.add(rdbBlue,BorderLayout.NORTH);
panel1.add(rdbRed,BorderLayout.CENTER);
panel1.add(rdbYellow,BorderLayout.SOUTH);
//add panel1 to frame
add(panel1, BorderLayout.CENTER);
//action listener
rdbRed.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
getContentPane().setBackground(Color.red);
}
});
rdbYellow.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
getContentPane().setBackground(Color.YELLOW);
}
});
rdbBlue.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
getContentPane().setBackground(Color.BLUE);
}
});
//slider
slider = new JSlider();
slider.setMinimum(1990);
slider.setMaximum(2019);
slider.setOrientation(JSlider.VERTICAL);
slider.setMajorTickSpacing(4);
slider.setMinorTickSpacing(2);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
add(slider,BorderLayout.EAST);
slider.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
int value = slider.getValue();
textField.setText(String.valueOf(value));
}
});
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Main();
}
});
}
}
//output

//If you need any help regarding this solution ............. please leave a comment ....... thanks