![](/img/trans.png)
[英]Why the itemListener not automatically triggered after setSelectedIndex(0) is called?
[英]Why I cannot make the setSelectedIndex work?
因此,我試圖使按鈕通過我的每個選項卡面板,並且效果很好。 現在,我必須讓它們在每個選項卡之一到達末尾時重復執行這些選項卡。 我使“上一個”按鈕起作用,並且它起作用了,但是似乎無法獲得使“下一個”按鈕起作用的正確數值表達式。 我嘗試了許多不同的數字表達式,但這是我到目前為止的結果:
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);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.