Question

Write java code to design the following graphical user interface with main window having background color blue. The interface should contain 3 buttons for 'Yellow', 'red' and 'pink' When a button is clicked the background color of JTextArea found at the center of main window(JFrame) should be changed to that color.

Answers

There are no human answers yet.
Answered by GPT-4o mini
To create a Java graphical user interface (GUI) as described, you can use the Swing library. Below is a sample code that sets up a `JFrame` with a blue background and three buttons ("Yellow", "Red", and "Pink"). When you click a button, the background color of a `JTextArea` in the center of the main window changes to the corresponding color.

Here's the complete code:

```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ColorChanger extends JFrame {
private JTextArea textArea;

public ColorChanger() {
// Set the title of the JFrame
setTitle("Color Changer");

// Set the default close operation
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Set the layout manager
setLayout(new BorderLayout());

// Create a JTextArea and set its properties
textArea = new JTextArea("Click a button to change my background color");
textArea.setEditable(false);
textArea.setBackground(Color.WHITE); // Initial background color
add(textArea, BorderLayout.CENTER);

// Create a JPanel to hold buttons
JPanel buttonPanel = new JPanel();
buttonPanel.setBackground(Color.BLUE); // Panel background will be blue

// Create buttons for different colors
JButton yellowButton = new JButton("Yellow");
JButton redButton = new JButton("Red");
JButton pinkButton = new JButton("Pink");

// Add action listeners for buttons
yellowButton.addActionListener(new ColorAction(Color.YELLOW));
redButton.addActionListener(new ColorAction(Color.RED));
pinkButton.addActionListener(new ColorAction(Color.PINK));

// Add buttons to the button panel
buttonPanel.add(yellowButton);
buttonPanel.add(redButton);
buttonPanel.add(pinkButton);

// Add button panel to the frame
add(buttonPanel, BorderLayout.SOUTH);

// Set the background color of the main window
getContentPane().setBackground(Color.BLUE);

// Set the window size and make it visible
setSize(400, 300);
setVisible(true);
setLocationRelativeTo(null); // Center the window on the screen
}

// Action listener class to change the background color of the JTextArea
private class ColorAction implements ActionListener {
private Color color;

public ColorAction(Color color) {
this.color = color;
}

@Override
public void actionPerformed(ActionEvent e) {
textArea.setBackground(color);
}
}

// Main method to run the application
public static void main(String[] args) {
// Use SwingUtilities to ensure thread safety
SwingUtilities.invokeLater(ColorChanger::new);
}
}
```

### Explanation:
1. **JFrame**: The main window which contains all the components.
2. **JTextArea**: A text area in the center to display information and change colors.
3. **JPanel**: A panel to hold the buttons at the bottom.
4. **JButton**: Three buttons to change the background color to Yellow, Red, and Pink.
5. **ActionListener**: When a button is clicked, it changes the background color of the `JTextArea` using the `setBackground()` method.
6. **setLayout()**: Used to set the layout of the `JFrame`.
7. **setSize() and setVisible()**: Methods to set the dimensions of the window and to make it visible.

To run this code:
- Copy and paste it into a Java IDE or a text file with a `.java` extension.
- Compile and run the program to see the GUI in action.

Related Questions