在A类中,当我单击一个按钮并且该按钮返回true或false时。如果返回true,则启用JTabbedPane的Next选项卡,该选项卡写在另一个类中。这可能听起来很愚蠢,但我已经尝试了很多。它不断给出空指针异常。这是我的代码..
public class StepsForApply extends JPanel {
public JTabbedPane tab = new JTabbedPane();
PersonalDetails pd = new PersonalDetails();
int ch =1;
int a[]={0,1,2,3,4,5};
public StepsForApply()
{
setLayout(null);
setBounds(100, 100, 660, 300);
tab.add("Sourcing",new JPanel());
tab.add("Personal Details",pd);
tab.add("Income Details",new JPanel());
tab.add("Education Details", new JPanel());
tab.add("Liability Details",new JPanel());
tab.add("Experence Details", new JPanel());
tab.setBounds(0,0,700,300);
add(tab);
//disableAll(1);
for(int i=2;i<=a.length-1;i++)
{
tab.setEnabledAt(i, false);
}
if(pd.check()==true)
{
tab.setEnabledAt(2,true);
}
setVisible(true);
}
}
以下是选项卡中的访问个人详细信息
public class PersonalDetails extends JPanel {
int response,response1;
int cooat;
private JTextField voterTxt;
public boolean checkstatus = false;
public PersonalDetails()
{
setLayout(null);
JButton btnSave = new JButton("Save");
btnSave.setBounds(29, 173, 89, 23);
add(btnSave);
voterTxt = new JTextField();
voterTxt.setBounds(137, 67, 86, 20);
add(voterTxt);
voterTxt.setColumns(10);
JLabel lblVoteridNo = new JLabel("VoterId No.");
lblVoteridNo.setBounds(29, 70, 94, 14);
add(lblVoteridNo);
btnSave.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cooat = JOptionPane.showConfirmDialog(null, "Do you want to continue?", "Confirm",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
PersonalDetails.this.check();
}
});
}
'
public boolean check()
{
if (cooat == JOptionPane.NO_OPTION) {
voterTxt.requestFocus();
}
else
if(cooat==JOptionPane.YES_OPTION)
{
checkstatus = true;
return checkstatus;
}
return checkstatus;
}
}
答案 0 :(得分:1)
您的代码存在很多重大问题,包括:
JOptionPane.YES_OPTION
的值)。setBounds(..)
。虽然null布局和setBounds()
似乎是Swing新手,比如创建复杂GUI的最简单和最好的方法,但是你创建的Swing GUI越多,你在使用它们时会遇到更严重的困难。 。当GUI调整大小时,他们不会调整组件的大小,他们是增强或维护的皇室女巫,当他们放置在滚动窗格中时,他们完全失败,当他们在所有平台或屏幕分辨率不同时看起来很糟糕原来的。