有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing如何使用单选按钮选择Java图形

大家好,我试图在选择单选按钮时显示一个java图像,所以我用这段代码和if语句来识别按钮输入。但我无法让图像出现

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Graphics;
import java.awt.Color;
    
public class Button1 extends JPanel {          
    static String sadString = "Sad Joffrey";
    static String happyString = "Happy Joffrey";
    public Button1() {                
    JRadioButton sadButton = new JRadioButton(sadString);
    sadButton.setMnemonic(KeyEvent.VK_B);
    sadButton.setActionCommand(sadString);
    sadButton.setSelected(true);
        
    JRadioButton happyButton = new JRadioButton(happyString);
    happyButton.setMnemonic(KeyEvent.VK_C);
    happyButton.setActionCommand(happyString);
        
    ButtonGroup group = new ButtonGroup();
    group.add(sadButton);
    group.add(happyButton);
    JPanel radioPanel = new JPanel(new GridLayout(0, 1));
    radioPanel.add(sadButton);
    radioPanel.add(happyButton);
    class Draw extends JComponent {
         public void paint(Graphics g) {
             if (happyButton.isSelected()) {
                 g.setColor(Color.black);
                 g.drawRect (10, 10, 200, 200);
                 g.fillOval (25, 35, 50, 50);
                 g.fillOval (150, 35, 50, 50);        
                 g.fillArc(75, 100, 100, 75, -200, 200);

             }        
        } 
    }
    add(radioPanel, BorderLayout.LINE_START);
    setBorder(BorderFactory.createEmptyBorder(30,30,300,300));
}
public static void createAndShowGUI() {
    JFrame frame = new JFrame("Button1");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
    JComponent newContentPane = new Button1();
    newContentPane.setOpaque(true);
    frame.setContentPane(newContentPane);
    frame.pack();
    frame.setVisible(true);
    JFrame window = new JFrame();
    window.getContentPane().add(new Draw());
}       
public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
    createAndShowGUI();
        }
    });
    }
}

我还没有把悲伤的脸画进去,但上面我想在if语句中显示代码,如果按下按钮,否则,它会显示悲伤的那一个,那么我该如何画出正确的代码呢


共 (0) 个答案