不知道如何添加按钮数组 - java

时间:2016-08-02 09:24:45

标签: java arrays swing button actionlistener

这是我的练习说明: 当用户单击其中一个按钮时,中间的面板必须更改为 随机颜色。顶部的标签必须将其文本更改为随机元素 在四个字符串的数组中。使用按钮阵列作为四个按钮。每当 用户将光标移动到标签上,文本颜色必须更改为随机颜色 和字体。当鼠标离开标签时,它必须返回默认值。

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);
    }
}

1 个答案:

答案 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]);
    }