为什么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我已经把我所有的代码和你要求的东西放在一起了。希望这现在有意义。任何帮助都将不胜感激。让我更新一下我之前的问题。谢谢你抽出时间。