簡體   English   中英

為什么我不能使setSelectedIndex工作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM