gpt4 book ai didi

java - 如何使 JPanel 可滚动?

转载 作者:行者123 更新时间:2023-12-02 00:38:10 25 4
gpt4 key购买 nike

我有一个 JFrame,我想在其中显示一个包含 Jpanel 的 JInternal Frame。该 JPanel 包含一些 JLabels 和 JTextFields。由于JInternal Frame的尺寸小于JPanel的尺寸。 JInternal Frame 不可调整大小,因此我想使包含表单的 jpanel 应该可滚动。这是它的演示代码,在这段代码中我没有使用 JInternal Frame 以使其简单。但是当我执行此代码时,它没有显示滚动条。 请 friend 告诉我这段代码有什么问题。我想使用 setBounds() 方法而不是 setDimension() 方法或 setPreferredSize() 方法。那么可能吗?

这是我的代码

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
public class InterfaceDesign {

public static void main(String args[]){
InterfaceDesign id=new InterfaceDesign();
id.getPnlProjectDetail("My Project");
}

public void getPnlProjectDetail(String strProjectName){
JPanel pnlProjectDetail=new JPanel();
JScrollPane scrProjectDetail;
pnlProjectDetail.setLayout(null);
pnlProjectDetail.setBounds(0, 0, 400,400);
JFrame frmtest=new JFrame();
frmtest.setBounds(1,1,300,200);

JLabel lblFirstName=new JLabel("First Name");
JLabel lblLastName=new JLabel("Last Name");
JLabel lblAddress=new JLabel("Address");
JLabel lblCity=new JLabel("City");
JLabel lblZipCode=new JLabel("Zip Code");
JLabel lblPhone=new JLabel("Phone");
JLabel lblEmailID=new JLabel("Emain Id");

JTextField tfFirstName=new JTextField();
JTextField tfLastName=new JTextField();
JTextField tfAddress=new JTextField();
JTextField tfCity=new JTextField();
JTextField tfZipCode=new JTextField();
JTextField tfPhone=new JTextField();
JTextField tfEmailID=new JTextField();

lblFirstName.setBounds(25, 55, 85, 20);
tfFirstName.setBounds(25, 85, 85, 20);
pnlProjectDetail.add(lblFirstName);
pnlProjectDetail.add(tfFirstName);

lblLastName.setBounds(25, 115, 85, 20);
tfLastName.setBounds(25, 145, 85, 20);
pnlProjectDetail.add(lblLastName);
pnlProjectDetail.add(tfLastName);

lblAddress.setBounds(25, 175, 85, 20);
tfAddress.setBounds(25, 205, 85, 20);
pnlProjectDetail.add(lblAddress);
pnlProjectDetail.add(tfAddress);

lblCity.setBounds(25, 235, 85, 20);
tfCity.setBounds(25, 265, 85, 20);
pnlProjectDetail.add(lblCity);
pnlProjectDetail.add(tfCity);

lblZipCode.setBounds(25, 295, 85, 20);
tfZipCode.setBounds(25, 325, 85, 20);
pnlProjectDetail.add(lblZipCode);
pnlProjectDetail.add(tfZipCode);

lblPhone.setBounds(25, 355, 85, 20);
tfPhone.setBounds(25, 385, 85, 20);
pnlProjectDetail.add(lblPhone);
pnlProjectDetail.add(tfPhone);

lblEmailID.setBounds(25, 415, 85, 20);
tfEmailID.setBounds(25, 445, 85, 20);
pnlProjectDetail.add(lblEmailID);
pnlProjectDetail.add(tfEmailID);

scrProjectDetail=new JScrollPane(pnlProjectDetail);
frmtest.setContentPane(scrProjectDetail);
//frmtest.add(scrProjectDetail);
frmtest.setVisible(true);
frmtest.setResizable(false);
frmtest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//return pnlProjectDetail;
}


}

请各位 friend 指导一下!谢谢你!

最佳答案

在 JScrollPane 中调用面板的 setPreferredSize()。

但是使用LayoutManager要好得多!

关于java - 如何使 JPanel 可滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com