这是我的练习说明: 当用户单击其中一个按钮时,中间的面板必须更改为 随机颜色。顶部的标签必须将其文本更改为随机元素 在四个字符串的数组中。使用按钮阵列作为四个按钮。每当 用户将光标移动到标签上,文本颜色必须更改为随机颜色 和字体。当鼠标离开标签时,它必须返回默认值。
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
//2.3.5 - 1
public class UserGui extends JFrame implements ActionListener, WindowListener, MouseListener {
private JLabel label;
private JButton button[] = new JButton[4];
public UserGui() {
super("My Frame");
this.setSize(300,150);
JMenuBar myMenuBar = new JMenuBar();
((JPanel) getContentPane()).setBorder(new EmptyBorder(13, 13, 13, 13) );
setLayout(new GridBagLayout());
JPanel colorize = new JPanel();
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
// from here
//strings put in array for label change(by hovering over)
String[] myStringArray = new String[]{"Funky","Classic","Legendary","Awesome"};
Border border = BorderFactory.createLineBorder(Color.BLACK, 5);
label = new JLabel("Java Wins!");
c.ipady = 40;
c.weightx = 0.0;
c.gridwidth = 4;
c.gridx = 0;
c.gridy = 0;
setJMenuBar(myMenuBar);
JMenu myMenu = new JMenu("File");
JMenuItem quitItem = new JMenuItem("Quit");
add(label);
addWindowListener(this);
myMenu.add(quitItem);
myMenuBar.add(myMenu);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
quitItem.addActionListener(this);
setVisible(true);
}
public void windowOpened(WindowEvent e) {
JOptionPane.showMessageDialog(null, "Welcome!");
}
/*
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals(""))
{
colorize.setText(field.getText());
}
}
*/
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source.equals("Quit")) {
System.exit(1);
}
}
public void windowActivated(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void windowClosing(WindowEvent e) {
int response = JOptionPane.showConfirmDialog(null, "Are you sure you want to exit?");
if (response == JOptionPane.YES_OPTION) {
System.exit(0); // Exits application
}
}
public static void main(String args[]) {
JFrame frame = new UserGui();
frame.setVisible(true);
}
}
答案 0 :(得分:3)
您可以按如下方式创建Jbutton数组,使用for循环实例化它们并将它们添加到面板中。您可以使用快速切换语句来定义颜色。
JButton[] buttons = new JButton[4];
for(int i = 0; i < buttons.length; i++){
switch (i) {
case 0:
buttons[i] = new JButton("Red");
break;
case 1:
buttons[i] = new JButton("Blue");
break;
case 2:
buttons[i] = new JButton("Green");
break;
case 3:
buttons[i] = new JButton("Black");
break;
default:
break;
}
panel.add(buttons[i]);
}