亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據用戶輸入生成 java swing 字段

根據用戶輸入生成 java swing 字段

揚帆大魚 2023-04-13 17:00:45
Java初學者在這里。我正在嘗試在 JScrollPane 內的 JPanel 中根據用戶輸入(輸入要生成的標簽數量在 0 到 50 之間)生成標簽。標簽生成正確,但問題是面板無法向下滾動以查看所有標簽。是因為我在面板上使用了絕對布局嗎?如果是,那么解決方案可能是什么?請指導。注意:我在 for 循環中使用 50 個 JLabel 數組制作了標簽。糟糕的編程實踐可能但有效。這是代碼片段        frame = new JFrame();        frame.setSize(800, 800);        frame.getContentPane().setLayout(null);        JScrollPane scrollPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);        scrollPane.setBounds(103, 37, 439, 350);        frame.getContentPane().add(scrollPane);        JPanel panel = new JPanel();        scrollPane.setViewportView(panel);        panel.setLayout(null);        JButton btnGenerateLabels = new JButton("Generate Labels");        btnGenerateLabels.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                JLabel[] lab =  new JLabel[50];                int  y = 50;                for(int i=0; i<50; i++)                {                    lab[i] = new JLabel();                    lab[i].setText("Label "+(i+1));                    panel.add(lab[i]);                    lab[i].setBounds(180, y, 97, 25);                    y += 30;                }            }        });        btnGenerateLabels.setBounds(129, 23, 152, 25);        panel.add(btnGenerateLabels);
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

是因為我在面板上使用了絕對布局嗎?

是的。不要使用空布局。Swing 旨在與布局管理器一起使用。

解決方案是使用布局管理器,可能是建議的 GridLayout。

將所有組件添加到面板后,您需要在面板上調用revalidate()和。repaint()這將調用布局管理器,并且每個組件都將被賦予一個大小/位置。

然后將根據需要顯示滾動條。


查看完整回答
反對 回復 2023-04-13
  • 1 回答
  • 0 關注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號