如何向视图添加JButton按钮

问题描述 投票:2回答:1

这是我的问题的一个简单例子,请不要告诉我该类没有用,并且我只能在我的主类中使用JPannel来做到这一点。谢谢。

如何在下面的JButton类中添加带有文本的EcranAcceuil

import java.awt.*;
import javax.swing.*;

public class jeu {
    public static void main(String[] args) {    
        // debut definition fenetre    
        JFrame fenetrejeu = new JFrame();    
        fenetrejeu.setTitle("QUEST");
        fenetrejeu.setSize(1000, 1000);
        fenetrejeu.setLocationRelativeTo(null);
        fenetrejeu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenetrejeu.setContentPane(new EcranAcceuil());
        fenetrejeu.setVisible(true);
    }
}

EcranAcceuil

import java.awt.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

public class EcranAcceuil extends JPanel {
    public void paintComponent(Graphics g) {
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, this.getWidth(), this.getHeight());
    }
}
java swing awt
1个回答
1
投票

执行以下操作:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

class EcranAcceuil extends JPanel implements ActionListener {
    JButton btnHello;
    JTextField txtHello;

    EcranAcceuil() {
        btnHello = new JButton("Hello");
        btnHello.addActionListener(this);
        txtHello = new JTextField(20);
        add(txtHello);
        add(btnHello);
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, this.getWidth(), this.getHeight());
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        txtHello.setText("Hello");
    }
}

public class jeu {
    public static void main(String[] args) {
        // debut definition fenetre
        JFrame fenetrejeu = new JFrame();
        fenetrejeu.setTitle("QUEST");
        fenetrejeu.setSize(1000, 1000);
        fenetrejeu.setLocationRelativeTo(null);
        fenetrejeu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenetrejeu.setContentPane(new EcranAcceuil());
        fenetrejeu.setVisible(true);
    }
}

[我也建议您遵循Java naming convention,例如class jeu应该为class Jeu

如有任何疑问,请随时发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.