Tag: jtabbedpane

JTabbedPane上的fire stateChanged事件

我有JTabbedPane和淡入淡出动画,当用户点击标签时会执行。 为了处理动画,我重写了stateChanged方法。 public class AnimatedJTabbedPane extends JTabbedPane implements ChangeListener, TimingTarget{ /** * */ private static final long serialVersionUID = 1L; protected BufferedImage previousTabImage; protected BufferedImage bufferImage; protected BufferedImage nextTabImage; protected boolean animationStarted = false; protected boolean paintPreviousImage = false; protected boolean leftToRightIndex = false; protected float fraction = 0.0f; protected Animator animator; protected int previousTabIndex […]

JTabbedPane中的选项卡不会反映按下按钮时的更改

在我的GUI的选项卡中,允许用户编辑员工的姓名。 该名称还用作选项卡的标签,因此在确认更改时,应更新选项卡以反映此更改,并将新数据写入数据文件。 员工存储在Employees类的HashMap中。 通过迭代员工姓名的ArrayList来填充选项卡,这是通过调用方法Employees.getNames() 。 在GUI中,用户可以键入新名称,然后按更改名称按钮。 按钮的ActionListener调用方法changeName() ,该方法用HashMap的新名称替换旧名称并更新数据文件。 这在用户第一次想要更改员工姓名时正常工作,但后续更改会产生错误。 看来包含JTextFields的JPanel (参见下面的getEmployeeInfoPanel() )没有更新参数name 。 此参数是员工的当前名称,而新名称是从JTextField 。 下面说明这个问题的一个例子。 基本上,步骤是: 1. old name = Mary is provided when the program starts 2. User changes name in JTextField, so oldName = Mary and newName = Mary S. 3. At this point, oldName should update to Mary S. as it […]

JTabbedPane Tab组件的MouseEvents没有渗透

我有一个带有自定义选项卡组件的JTabbedPane 。 该组件包含JLabel (显示选项卡标题)和JButton (关闭按钮)。 当我更改JLabel的文本时, JLabel停止接收鼠标事件,当我直接单击标签时,我无法再选择该选项卡,如果我单击标签然后我可以选择选项卡。 有任何想法吗? 一段代码: class ShellPanelTabComponent extends JPanel implements ActionListener{ private ShellPanel panel; private JLabel label; public ShellPanelTabComponent(final ShellPanel panel){ super(new FlowLayout(FlowLayout.LEFT, 0, 0)); this.panel = panel; setOpaque(false); label = new JLabel(panel.getTitle()); label.setFocusable(false); add(label); label.setBorder(BorderFactory.createEmptyBorder(2,0,0,5)); //now the button CloseButton closeButton = new CloseButton(panel); add(closeButton); closeButton.addActionListener(this); } public void actionPerformed(ActionEvent ae) […]

如何检查jframe是否打开?

我的代码创建了一个新数组并将其发送到chat(jFrame)。 String info1[]=new String[3]; // username , userid , userid2 are variables info1[0]=username4; info1[1]=””+userid; info1[2]=””+userid2; chat.main(info1); 但是我需要修改这段代码才能使用它,如果聊天jframe被打开,那么就不要打开一个新的jFrame。而是在聊天jframe中打开一个新标签。 聊天框的代码是: private void formWindowActivated(java.awt.event.WindowEvent evt) { JScrollPane panel2 = new JScrollPane(); JTextArea ta=new JTextArea(“”); ta.setColumns(30); ta.setRows(19); panel2.setViewportView(ta); jTabbedPane1.add(“Hello”, panel2); }

可关闭的JTabbedPane – 关闭按钮的对齐方式

我已经实现了我自己的可关闭JTabbedPane (基本上遵循这里的建议 – 通过扩展JTabbedPane并重写一些方法并调用setTabComponentAt(…))。 除了一件事情之外它完美地工作 – 当有太多标签适合一行时(当有2行或更多行标签时),十字按钮/图标没有对齐到标签的右边但是它仍然在旁边标题标题,看起来很难看。 我已经尝试过Java教程中的演示,它遇到了同样的问题。 我想要的是十字按钮/图标始终与最右边对齐,但文本始终与中心对齐。 这可以通过一些布局技巧来实现吗? 注意:我不想实现自定义TabbedPaneUI因为这会导致其他问题。 更新我被迫使用Java 6 完整的代码如下,只需运行它并添加5个或更多选项卡。 import java.awt.BorderLayout; import java.awt.Component; import java.awt.Graphics; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.net.URL; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTabbedPane; /** * CloseableTabbedPane is a […]

JTabbedPane:选项卡位置设置为LEFT但图标未对齐

我有一个JTabbedPane ,标签位置设置为LEFT。 问题是每个标签中的图标不是彼此垂直对齐的。 考虑这张图: 正如您所看到的,“Editar Protocolo”(第二个选项卡)的图标与“Distribuir Protocolo”(第一个选项卡)的图标并不完全对齐,而其他选项卡也会出现这种情况。 我希望所有图标都垂直对齐到左边。 这是我用来设置标签组件的代码: … jtabbedPane.setTabComponentAt(1, configurarJtabbedPane(“Editar Protocolo”, iconEditarProtocolo)); … public JLabel configurarJtabbedPane(String title, ImageIcon icon) { JLabel l = new JLabel(title); l.setIcon(icon); l.setIconTextGap(5); l.setHorizontalTextPosition(SwingConstants.RIGHT); return l; } 代码从标签左侧的 Q&A: JTabbedPane:图标中提取。

JTabbedPane:标签本身之前和之后的组件

这类似于如何在Java Swing中构建Google-chrome选项卡和菜单栏界面的问题? (我想要完成相同的工作),但更重要的是:如何将组件放在JTabbedPane中的选项卡的前面和后面? 我自己已经想出了按钮的想法,但我宁愿拥有一个JTabbedPane,因为它确实是它的样子,但是边上还有一个按钮或图标。 我已经看到Kirill的laf-widget项目为几个LaF做了类似的事情(标签左边的放大镜图标)。 但是,我必须承认,我还不够精通,无法理解他是如何做到的 – 而且这似乎是一个有点复杂的过程,其中一个“物理”改变了有问题的LaF(字节码操纵它),注入了laf -widget进入UI委托 – 我仍然不知道如何实际调制JTabbedPane或TabbedPaneUI以注入该图标/按钮。

Java JTabbedPane插入颜色

我想知道如何获得JTabbedPane插图的颜色。 我似乎无法获得这种颜色。 我做的每一次尝试都得到236,236,236这是外框颜色,其中内框颜色约10暗,227,227,227(使用内置的苹果颜色计)。 我正在使用UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())设置外观; 您可以在我在互联网上找到的图像中看到这一点。 http://pagesofinterest.net/wordpress/wp-content/uploads/2009/06/Quaqua-Maven-Netbeans.jpg“Panel’s Title”这个词是我得到的颜色较浅的区域对我没用。 在圆角内是我想要获得的深色。 我试着让内容窗格的颜色无济于事。 感谢你的帮助! **编辑:**添加代码! 如你所见,我试图让圆角内的区域颜色(如果你在Mac上)不是框架的颜色或说“1”“2”的标签。 我附上了一张照片,我正在尝试获取“Here”部分的背景颜色谢谢! import java.awt.Container; import javax.swing.JFrame; import javax.swing.JTabbedPane; import javax.swing.UIManager; public class main { JFrame frame; Container c1 = new Container(); Container c2 = new Container(); JTabbedPane top = new JTabbedPane(); static main GUI; public void createGUI(){ frame = new JFrame(); Container c = […]

DragTabFrame关闭不一致

下面的代码应该像您在FF,IE或Chrome等浏览器中看到的多文档界面(MDI)一样工作。 它在选项卡式窗格中显示“文档”(黑色缓冲图像作为间隔符),以便可以通过用户选择将它们从窗格拖动到新(或现有)窗口中。 但是,一旦它们没有更多选项卡,就会出现关闭框架的问题,以及当没有更多可见窗口时关闭框架。 我想我通过DragTabManager的Timer检查来修复它们: 它检查DragTabFrame实例的打开帧 如果找到一个,则检查选项卡计数。 如果为0,则框架设置为不可见并处置。 如果没有找到可见的框架实例,它将结束Timer以允许JRE退出。 至少这是它应该如何工作。 它似乎在这里可靠地工作,并且我看到没有’空框架或VM无法关闭’进行了不少测试。 它是否像其他人一样宣传,还是需要进一步观察? import java.awt.*; import java.awt.event.*; import java.awt.image.BufferedImage; import javax.swing.*; import javax.swing.border.EmptyBorder; public class DragTabFrame extends JFrame { private JTabbedPane tabbedPane = new JTabbedPane(); private final static DragTabManager dragTabManager = new DragTabManager(); final MouseAdapter ma = new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { JComponent […]

JTabbedPane中固定位置或一行中的选项卡

在我们的应用程序中,JTabbedPane具有无限制的选项卡,当选项卡的宽度超过选项卡式窗格的宽度时,选项卡将开始包装成多行。 然后,当您单击其中一个上行中的选项卡时,整行将向下并到达前景。 对于在多个选项卡之间进行点击的用户,由于无法跟踪选项卡顺序,因此非常容易混淆。 我怎么能 – 将标签钉在固定位置,同时将它们的内容放到前面(虽然这会损坏标签隐喻,但我不在乎),或者 – 将行数限制为一个(因此标签变得非常好)狭窄而不是包装)?