Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么getRolloverTab在Java中不能按预期工作_Java_Swing - Fatal编程技术网

为什么getRolloverTab在Java中不能按预期工作

为什么getRolloverTab在Java中不能按预期工作,java,swing,Java,Swing,我已经创建了自己的自定义jTabbedPane类扩展BasicTabbedPaneUI。除了一件事之外,一切都按预期进行得很好,那就是我无法让BasicTabbedPaneUI的getRolloverTab()方法按预期工作 这是我的密码 import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Rectangle2D; import java.awt.geo

我已经创建了自己的自定义
jTabbedPane
类扩展
BasicTabbedPaneUI
。除了一件事之外,一切都按预期进行得很好,那就是我无法让
BasicTabbedPaneUI的getRolloverTab()方法按预期工作

这是我的密码

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import javax.swing.plaf.basic.BasicTabbedPaneUI;


public class HAAMS 
{
  //My Custom class for jTabbedPane
  public static class CustomMainMenuTabs extends BasicTabbedPaneUI
  {
    protected void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected)
    {
        Graphics2D g2 = (Graphics2D) g;

        Color color;

        if (isSelected) { color = new Color(74, 175, 211); } 
        else if (getRolloverTab() == tabIndex) {  color = new Color(45, 145, 180); } 
        else {color = new Color(68, 67, 67);}

        g2.setPaint(color);
        g2.fill(new RoundRectangle2D.Double(x, y, w, h, 30, 30));

        g2.fill(new Rectangle2D.Double(x + 100,y,w,h));
    }
  }

   public static void main(String[] args) 
   {
     JFrame MainScreen = new JFrame("Custom JTabbedPane");
     MainScreen.setExtendedState(MainScreen.getExtendedState() | JFrame.MAXIMIZED_BOTH);

     //Setting UI for my jTabbedPane implementing my custom class CustomMainMenuTabs
     JTabbedPane jtpane = new JTabbedPane(2);
     jtpane.setUI(new CustomMainMenuTabs());
     jtpane.add("1st Tabe", new JPanel());
     jtpane.add("2nd Tabe", new JPanel());
     jtpane.add("3rd Tabe", new JPanel());

     MainScreen.getContentPane().add(jtpane);
     MainScreen.setVisible(true);
  }
}
当鼠标悬停在选项卡上时,我出错的地方是什么,并且这不会改变选项卡的背景色?任何帮助都将不胜感激


您可以看到,在我的IF条件中,给出了getRolloverTab()条件,当鼠标悬停在选项卡上时,该条件应该会更改选项卡的颜色,但问题是当鼠标悬停在选项卡上时,它不会更改颜色。如果(isSelected)条件和else条件正常工作,则getRolloverTab()条件不工作。我哪里出错了。

你在哪里证明你的问题?在上一个问题中,您还被要求进行
SSCCE
。如果你想让别人给你举个例子,那就贴一个合适的SSCCE,这样我们就可以做出改变。不要指望我们写完整的代码@camickr我已经提供了我的全部代码来演示这个问题,即使在if条件下,我也为getRolloverTab()编写了代码,但是当鼠标悬停在选项卡上并且悬停颜色不变时。你还叫什么?我不希望有人为我写代码,我只是问了一个解决方案,当鼠标悬停在选项卡上时,我的代码中的错误在哪里?我的代码不工作。
你还称什么为SSCCE?
-我如何执行该代码?该类如何与选项卡式窗格一起使用?如何在JFrame中创建和显示选项卡式窗格?另外,当您在选项卡式窗格中添加鼠标侦听器并使用
tabforcoridinate(…)
方法时,您还没有为其他问题显示您的
SSCCE
。我花时间帮助你,而你却无视我的建议,这真是令人讨厌。@camickr我不想以任何方式伤害你。我很匆忙,这就把主代码放在这里了。谢谢你抽出时间。让我把你真正称之为SSCE的东西说出来。如果这伤害了你,我很抱歉。@camickr我已经把我所有的代码和你要求的东西放在一起了。希望这现在有意义。任何帮助都将不胜感激。让我更新一下我之前的问题。谢谢你抽出时间。