gpt4 book ai didi

java - 为什么我无法使 setSelectedIndex 工作?

转载 作者:行者123 更新时间:2023-12-01 23:39:58 26 4
gpt4 key购买 nike

所以我试图让按钮穿过我的每个选项卡面板,它工作得很好。现在,每次其中一个选项卡到达末尾时,我都必须让他们重复运行选项卡。我使“上一个”按钮起作用,并且它起作用,但我似乎无法获得正确的数字表达式来使“下一个”按钮起作用。我尝试了许多不同的数字表达式,但这是迄今为止我所拥有的:

next = new JButton("next");
next.addActionListener(
new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
tabs.setSelectedIndex(tabs.getSelectedIndex()+1);
tabs.setSelectedIndex(tabs.getSelectedIndex()-7);
}
});

previous = new JButton("previous");
previous.addActionListener(
new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
tabs.setSelectedIndex(tabs.getSelectedIndex()-1);
tabs.setSelectedIndex(tabs.getSelectedIndex()+6);
}
});

这是每次我尝试下一个按钮时都会出现的异常:

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: -6, Tab count: 6

当我终于让它工作时,它跳过了最后一个选项卡,所以我真的不知道我做错了什么,但我有一种感觉是因为数字表达式。

最佳答案

您应该对边缘情况使用循环。

类似这样的事情。

next = new JButton("next");
next.addActionListener(
new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
int nextIndex = tabs.getSelectedIndex()+1;
tabs.setSelectedIndex( (nextIndex < tabs.getTabCount())?nextIndex:0 );
}
});

previous = new JButton("previous");
previous.addActionListener(
new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
int previousIndex = tabs.getSelectedIndex()-1;
tabs.setSelectedIndex((previousIndex < 0)?tabs.getTabCount()-1:previousIndex);
}
});

关于java - 为什么我无法使 setSelectedIndex 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18116770/

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