Java 如何将JButton添加到JFrame?
我试图在Java 如何将JButton添加到JFrame?,java,swing,jframe,jbutton,layout-manager,Java,Swing,Jframe,Jbutton,Layout Manager,我试图在JFrame中添加一个按钮,但由于某种原因它不会出现。我如何使它出现 import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.border.Border; import javax.swing.BorderFactory; import java.awt.Color;
JFrame
中添加一个按钮,但由于某种原因它不会出现。我如何使它出现
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import javax.swing.BorderFactory;
import java.awt.Color;
import java.awt.Container;
import java.awt.Rectangle;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.*;
public class GraficoconArreglo extends javax.swing.JFrame {
JPanel pan = (JPanel) this.getContentPane();
JLabel []lab = new JLabel[6];
JTextField []text = new JTextField[6];
Border border = BorderFactory.createLineBorder(Color.pink,1);
JButton b = new JButton("Calculate");
public GraficoconArreglo() {
initComponents();
pan.setLayout(null);
pan.setBackground(Color.GRAY);
for(int i=0; i<lab.length ;i++){
lab[i] = new JLabel();
text[i] = new JTextField();
lab[i].setBounds(new Rectangle(15,(i+1)*40, 60, 25));
lab[i].setText("Data " + (i+1));
lab[i].setBorder(border);
text[i].setBounds(new Rectangle(100,(i+1)*40, 60, 25));
pan.add(lab[i],null);
pan.add(text[i],null);
setSize(200,330);
setTitle("Arrays in forums.");
add(b);
b.addActionListener((ActionListener) this);
}
}
import javax.swing.JLabel;
导入javax.swing.JTextField;
导入javax.swing.JPanel;
导入javax.swing.SwingConstants;
导入javax.swing.border.border;
导入javax.swing.BorderFactory;
导入java.awt.Color;
导入java.awt.Container;
导入java.awt.Rectangle;
导入java.awt.event.ActionListener;
导入javax.swing.JButton;
导入javax.swing.*;
公共类GraficoconArreglo扩展了javax.swing.JFrame{
JPanel pan=(JPanel)this.getContentPane();
JLabel[]lab=新的JLabel[6];
JTextField[]text=新的JTextField[6];
Border Border=BorderFactory.createLineBorder(颜色:粉红色,1);
JButton b=新JButton(“计算”);
公共格拉菲科纳雷格罗(){
初始化组件();
pan.setLayout(空);
平底(颜色:灰色);
对于(int i=0;i您只创建了一个按钮,并将其添加到6个不同的位置。因此,您只能在添加的最后一个位置看到它。您应该将该按钮添加到contentPane,而不是JFrame。Eclipse Marketplace的SwingDesigner提供的工作代码是:
public class Window extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Window frame = new Window();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Window() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(null);
setContentPane(contentPane);
JButton btnNewButton = new JButton("New button");
btnNewButton.setBounds(170, 110, 89, 23);
contentPane.add(btnNewButton);
}
}永远不要使用空布局。永远不要尝试直接调用setBounds
。它永远不会工作。您的按钮可能不会出现,因为它超出了边界。1)为了更快地获得更好的帮助,发布一个或。2)以最小尺寸提供ASCII艺术或GUI预期布局的简单绘图,如果可以调整大小,则具有更大的宽度和高度-以显示应如何使用额外的空间。3)Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作。在不同的地区使用不同的PLAF。如这样,它们不利于像素完美的布局。请使用布局管理器,或者……以及布局填充和边框。(1-)不要使用空布局。Swing设计用于布局管理器。您应该将按钮添加到contentPane,而不是JFrame。
-您可以将按钮添加到框架中。add()框架的方法将组件转发到框架的内容窗格。无需专门将内容窗格设置为面板,因为默认内容窗格已经是JPanel。