Java 如何将JButton按钮添加到视图中
这是我的问题的一个极简主义的例子,所以,请不要告诉我这个类是无用的,我可以用我的主类中的一个JPannel来完成它。谢谢 如何在下面的Java 如何将JButton按钮添加到视图中,java,swing,awt,Java,Swing,Awt,这是我的问题的一个极简主义的例子,所以,请不要告诉我这个类是无用的,我可以用我的主类中的一个JPannel来完成它。谢谢 如何在下面的EcranAcceuil类中添加带有文本的JButton import java.awt.*; import javax.swing.*; public class jeu { public static void main(String[] args) { // debut definition fenetre
EcranAcceuil
类中添加带有文本的JButton
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);
}
}
ecranaceuil
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());
}
}
按如下方式操作:
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);
}
}
我还建议您遵循,例如,class-jeu
应该是class-jeu
按照以下步骤操作:
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);
}
}
我还建议您遵循,例如,
class-jeu
应该是class-jeu
“请不要告诉我这个类是无用的…”测试用例被接受和赞赏。你真的想在一个有组件作为成员的类上进行自定义绘制吗?“请不要告诉我这个类是无用的…”测试用例被接受和欣赏。你真的想在一个包含组件作为成员的类上进行自定义绘制吗?我可以将侦听器放在哪里?@starter45-我已经更新了我的代码以合并此要求。你的paintComponent覆盖应该包括对super.paintComponent的调用。以及@Override annotation。谢谢@GilbertLeBlanc的建议。我已经更新了答案以合并它。我可以将侦听器放在哪里?@starter45-我已经更新了代码以合并此要求。您的paintComponent覆盖应该包括对super.paintComponent的调用。以及@Override annotation。谢谢@GilbertLeBlanc的建议。我已经更新了答案,将其纳入其中。