我尝试使用"为"添加各种JButton到JPanel。但是没有用。没有编译或其他错误。按钮刚好不会出现。
一点上下文,我在另一个类中创建一个ArryList(" GestorFrigo")从DataBase获取数据,这很好用,数组包含所有数据,没有问题。从数组中备份数据。
这是我的代码:提前致谢。
import gestor.GestorFrigo;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JScrollBar;
@SuppressWarnings("serial")
public class VentanaInterior extends JFrame {
private JPanel contentPane;
private JButton btnPerfiles;
private JButton btnAadir;
private JButton btnRecetas;
private JScrollBar scrollBar;
private GestorFrigo frigo;
private ArrayList<JButton> botones;
private ArrayList<Object> boton;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
VentanaInterior frame = new VentanaInterior();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public VentanaInterior() {
//Componentes
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 556, 363);
setLocationRelativeTo(null);
setTitle("Tu Frigorífico Inteligente");
setIconImage(new ImageIcon(getClass().getResource("img/logo.png")).getImage());
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
btnPerfiles = new JButton("Perfiles");
btnPerfiles.setBounds(0, 302, 96, 23);
contentPane.add(btnPerfiles);
btnAadir = new JButton("A\u00F1adir alimento");
btnAadir.setBounds(369, 302, 148, 23);
contentPane.add(btnAadir);
btnRecetas = new JButton("Recetas");
btnRecetas.setBounds(96, 302, 103, 23);
contentPane.add(btnRecetas);
scrollBar = new JScrollBar();
scrollBar.setBounds(523, 0, 17, 325);
contentPane.add(scrollBar);
JButton btnQueso = new JButton();
btnQueso.setBounds(24, 35, 62, 61);
contentPane.add(btnQueso);
frigo = new GestorFrigo(); //creamos el gestor
String imagen = frigo.getArray().get(1).getImagen(); //cogemos la imagen asociada al alimento
btnQueso.setIcon(new ImageIcon("src/img/"+imagen));
for(int i=0;i<frigo.getArray().size();i++){
JButton boton = new JButton();
String imagen2 = frigo.getArray().get(i).getImagen();
boton.setIcon(new ImageIcon("src/img/"+imagen2));
contentPane.add(boton);
}
}
}
答案 0 :(得分:2)
不要使用空布局。
默认情况下,您的按钮的默认大小为(0,0),因此无需绘制任何内容。
使用布局管理器,可能是GridLayout
,布局管理器将为您确定每个按钮的大小和位置。
阅读Swing教程o Using Layout Managers中的部分,了解更多信息和工作示例。