Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA中JPanel内部的JPanel publicstaticvoidmain(字符串[]args){ JTextField text=新的JTextField(); JFrame=新JFrame(); frame.setLayout(新的BorderLayout()); JPanel面板=新的JPanel(); 面板设置布局(新网格布局(5,4)); JPanel panel2=新的JPanel(); panel2.setLayout(新的FlowLayout()); JLabel imgLabel1=新的JLabel(新的图像图标(“C:\\Users\\Arthur\\Downloads\\abs.jpg”); JLabel imgLabel2=新的JLabel(新的图像图标(“C:\\Users\\Arthur\\Downloads\\abss.jpg”); imgLabel1.设置首选尺寸(新尺寸(100100)); imgLabel2.设置首选尺寸(新尺寸(100100)); 小组2.添加(imgLabel1); 面板2.添加(imgLabel2); 对于(inti=0;i_Java_User Interface_Interface_Jpanel - Fatal编程技术网

JAVA中JPanel内部的JPanel publicstaticvoidmain(字符串[]args){ JTextField text=新的JTextField(); JFrame=新JFrame(); frame.setLayout(新的BorderLayout()); JPanel面板=新的JPanel(); 面板设置布局(新网格布局(5,4)); JPanel panel2=新的JPanel(); panel2.setLayout(新的FlowLayout()); JLabel imgLabel1=新的JLabel(新的图像图标(“C:\\Users\\Arthur\\Downloads\\abs.jpg”); JLabel imgLabel2=新的JLabel(新的图像图标(“C:\\Users\\Arthur\\Downloads\\abss.jpg”); imgLabel1.设置首选尺寸(新尺寸(100100)); imgLabel2.设置首选尺寸(新尺寸(100100)); 小组2.添加(imgLabel1); 面板2.添加(imgLabel2); 对于(inti=0;i

JAVA中JPanel内部的JPanel publicstaticvoidmain(字符串[]args){ JTextField text=新的JTextField(); JFrame=新JFrame(); frame.setLayout(新的BorderLayout()); JPanel面板=新的JPanel(); 面板设置布局(新网格布局(5,4)); JPanel panel2=新的JPanel(); panel2.setLayout(新的FlowLayout()); JLabel imgLabel1=新的JLabel(新的图像图标(“C:\\Users\\Arthur\\Downloads\\abs.jpg”); JLabel imgLabel2=新的JLabel(新的图像图标(“C:\\Users\\Arthur\\Downloads\\abss.jpg”); imgLabel1.设置首选尺寸(新尺寸(100100)); imgLabel2.设置首选尺寸(新尺寸(100100)); 小组2.添加(imgLabel1); 面板2.添加(imgLabel2); 对于(inti=0;i,java,user-interface,interface,jpanel,Java,User Interface,Interface,Jpanel,所以,如果理解正确,您的问题是,您没有看到20个新面板,只有一个 问题是,一个组件只能驻留在一个容器中一次,所以执行类似于 public static void main(String[] args) { JTextField text = new JTextField(); JFrame frame = new JFrame(); frame.setLayout(new BorderLayout()); JPanel panel

所以,如果理解正确,您的问题是,您没有看到20个新面板,只有一个

问题是,一个组件只能驻留在一个容器中一次,所以执行类似于

  public static void main(String[] args) {
      JTextField text = new JTextField();
      JFrame frame = new JFrame();
      frame.setLayout(new BorderLayout());      
      JPanel panel = new JPanel();
      panel.setLayout(new GridLayout(5, 4));
      JPanel panel2 = new JPanel();
      panel2.setLayout(new FlowLayout());



      JLabel imgLabel1 = new JLabel(new ImageIcon("C:\\Users\\Arthur\\Downloads\\abs.jpg"));
      JLabel imgLabel2 = new JLabel(new ImageIcon("C:\\Users\\Arthur\\Downloads\\abss.jpg"));


      imgLabel1.setPreferredSize(new Dimension(100,100));
      imgLabel2.setPreferredSize(new Dimension(100,100));

      panel2.add(imgLabel1);
      panel2.add(imgLabel2);


      for(int i=0; i<20; i++){
          panel.add(panel2);
      }


      frame.add(text, BorderLayout.NORTH);
      frame.add(panel, BorderLayout.CENTER);      
      frame.setPreferredSize(new Dimension(1280,700));
      frame.pack();
      frame.setVisible(true);      
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
for (int i = 0; i < 20; i++) {
    panel.add(panel2);
}
public class WrapperPane extends JPanel {

    public WrapperPane() {
        setLayout(new FlowLayout());
        add(makePanel(Color.RED));
        add(makePanel(Color.GREEN));
        // This is just for demonstration purposes
        setBorder(new LineBorder(Color.DARK_GRAY));
    }

    protected JPanel makePanel(Color background) {
        JPanel panel = new JPanel();
        panel.setBackground(background);
        panel.setPreferredSize(new Dimension(100, 100));
        return panel;
    }

}
实际上,您需要在循环的每次迭代中创建组件的新实例

我建议你做的是创建一个“包装器”或“卡片”面板,可以包含这两个图像。在我的测试中,我只使用了彩色面板,但你明白了

panel.add(panel2);
你只需要做一些像

  public static void main(String[] args) {
      JTextField text = new JTextField();
      JFrame frame = new JFrame();
      frame.setLayout(new BorderLayout());      
      JPanel panel = new JPanel();
      panel.setLayout(new GridLayout(5, 4));
      JPanel panel2 = new JPanel();
      panel2.setLayout(new FlowLayout());



      JLabel imgLabel1 = new JLabel(new ImageIcon("C:\\Users\\Arthur\\Downloads\\abs.jpg"));
      JLabel imgLabel2 = new JLabel(new ImageIcon("C:\\Users\\Arthur\\Downloads\\abss.jpg"));


      imgLabel1.setPreferredSize(new Dimension(100,100));
      imgLabel2.setPreferredSize(new Dimension(100,100));

      panel2.add(imgLabel1);
      panel2.add(imgLabel2);


      for(int i=0; i<20; i++){
          panel.add(panel2);
      }


      frame.add(text, BorderLayout.NORTH);
      frame.add(panel, BorderLayout.CENTER);      
      frame.setPreferredSize(new Dimension(1280,700));
      frame.pack();
      frame.setVisible(true);      
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
for (int i = 0; i < 20; i++) {
    panel.add(panel2);
}
public class WrapperPane extends JPanel {

    public WrapperPane() {
        setLayout(new FlowLayout());
        add(makePanel(Color.RED));
        add(makePanel(Color.GREEN));
        // This is just for demonstration purposes
        setBorder(new LineBorder(Color.DARK_GRAY));
    }

    protected JPanel makePanel(Color background) {
        JPanel panel = new JPanel();
        panel.setBackground(background);
        panel.setPreferredSize(new Dimension(100, 100));
        return panel;
    }

}
JTextField text=新的JTextField();
JFrame=新JFrame();
frame.setLayout(新的BorderLayout());
JPanel面板=新的JPanel();
面板设置布局(新网格布局(5,4));
对于(int i=0;i<20;i++){
panel.add(新包装窗格());
}
框架。添加(文本,边框布局。北);
添加(面板、边框布局、中心);
//不要这样做,让内容自己做就行了
//计算
//frame.setPreferredSize(新尺寸(1280700));
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
你最终会得到像

  public static void main(String[] args) {
      JTextField text = new JTextField();
      JFrame frame = new JFrame();
      frame.setLayout(new BorderLayout());      
      JPanel panel = new JPanel();
      panel.setLayout(new GridLayout(5, 4));
      JPanel panel2 = new JPanel();
      panel2.setLayout(new FlowLayout());



      JLabel imgLabel1 = new JLabel(new ImageIcon("C:\\Users\\Arthur\\Downloads\\abs.jpg"));
      JLabel imgLabel2 = new JLabel(new ImageIcon("C:\\Users\\Arthur\\Downloads\\abss.jpg"));


      imgLabel1.setPreferredSize(new Dimension(100,100));
      imgLabel2.setPreferredSize(new Dimension(100,100));

      panel2.add(imgLabel1);
      panel2.add(imgLabel2);


      for(int i=0; i<20; i++){
          panel.add(panel2);
      }


      frame.add(text, BorderLayout.NORTH);
      frame.add(panel, BorderLayout.CENTER);      
      frame.setPreferredSize(new Dimension(1280,700));
      frame.pack();
      frame.setVisible(true);      
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
for (int i = 0; i < 20; i++) {
    panel.add(panel2);
}
public class WrapperPane extends JPanel {

    public WrapperPane() {
        setLayout(new FlowLayout());
        add(makePanel(Color.RED));
        add(makePanel(Color.GREEN));
        // This is just for demonstration purposes
        setBorder(new LineBorder(Color.DARK_GRAY));
    }

    protected JPanel makePanel(Color background) {
        JPanel panel = new JPanel();
        panel.setBackground(background);
        panel.setPreferredSize(new Dimension(100, 100));
        return panel;
    }

}