标签: jxtaskpane

将新组件放在JXTaskPane上

JXTaskPaneJava中Swing的使用有一个标题栏.其中有一个扩展/收缩按钮.我希望能够在标题栏中添加我自己的操作,该标题栏将显示在展开/收缩按钮旁边.

我怎样才能做到这一点?我尝试了很多次,但没有得到预期的结果.我创建了一个新的JButton并将其位置设置在标题栏坐标上,但它已添加到元素中.

我附上了一个屏幕截图,在标题栏中显示了一个帮助类型操作,以显示我的意思.

任务图片

java swing swingx customtaskpane jxtaskpane

13
推荐指数
1
解决办法
931
查看次数

Java Swing:在组件*完成*大小调整时执行某些操作

对这个有点不明确的问题道歉 - 想不出更好的方法.

我使用JXTaskPane(来自Swing labs扩展API)来显示一些信息.

用户可以"单击"标题以展开面板.JXTaskPane位于容器JPanel中,然后将其添加到我的主应用程序窗口JFrame中.

我希望我的应用程序窗口调整为扩展任务窗格的大小.为此,我向容器JPanel添加了一个组件监听器,它将大小设置为现在扩展的面板.

panel.addComponentListener(new ComponentListener()
{   
    public void componentResized(ComponentEvent e)
    {
        Dimension newSize = ((JXTaskPane)e.getSource()).getSize();
        reSizeFrame(newSize);
    }
}

private void reSizeFrame(Dimension newSize)
{   
    if ((newSize.height < maxSize.height) && (newSize.width < maxSize.width))
    {
        containerPanel.setSize(newSize);
        appFrame.setSize(containerPanel.getSize());
        appFrame.pack();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是在任务窗格扩展时调用componentResized方法,因此调用resizeFrame方法很多次,并且在屏幕上看起来非常糟糕.

如何检测JXTaskpane何时完成大小调整?我想到了两种方法:

  • 将resizeFrame()方法放在SwingUtilities.invokeLate(..)调用中.

  • 放入一个timer resizeFrame调用,所以任何后续调用都不会做任何事情,直到定时器触发.这应该为面板调整大小提供足够的时间.

前进的最佳方式是什么?

此外 - 这是我经过多年服务器端程序后的第一个认真的 Java GUI应用程序.StackOverflow非常有用.那谢谢啦!

java swing jxtaskpane

8
推荐指数
1
解决办法
3965
查看次数

如何更改JXTaskPaneContainer的bg颜色

我想将蓝色背景颜色更改为taskpanecontainer的白色.我用过下面这行但没有任何影响.

UIManager.put("TaskPaneContainer.background", Color.LIGHT_GRAY);
Run Code Online (Sandbox Code Playgroud)

请给我一些改变bg颜色的想法.

public class NewJFrame2 extends javax.swing.JFrame {

        public NewJFrame2() {
            initComponents();
            setSize(462, 300);
            add(doInit());
            setBackground(Color.WHITE);
        }

        private Component doInit() {
                JXTaskPaneContainer taskpanecontainer = new JXTaskPaneContainer();
                //taskpanecontainer.setLayout(new VerticalLayout(2));

                JXTaskPane taskpane1 = new JXTaskPane();
                taskpane1.setTitle("First TaskPane");
                JXTable table = new JXTable();
                DefaultTableModel model = new DefaultTableModel();
                model.addColumn("ParameterName");
                model.addColumn("ParameterType");
                model.addColumn("Operation");
                model.addRow(new Object[]{"Request", "String", "Delete"});
                model.addRow(new Object[]{"Request", "String", "Delete"});

                table.setModel(model);
                ((JComponent) taskpane1.getContentPane()).setBorder(BorderFactory.createEmptyBorder(0,5,0,5));
                taskpane1.add(table);

                taskpanecontainer.add(taskpane1);

                taskpanecontainer.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,0,0,0));

                return taskpanecontainer;
            }
    }
Run Code Online (Sandbox Code Playgroud)

我也在分享图像,所以我已经清除了你的想法.. 在此输入图像描述

谢谢

java swing swingx jxtaskpane

6
推荐指数
1
解决办法
968
查看次数

Java Swing JXTaskPane:如何设置背景和边框?

我编写了以下示例代码:

import org.jdesktop.swingx.*;
import javax.swing.*;
import java.awt.*;

public class TaskPaneExample{
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new TaskPaneExample();
            }});
        }

        public TaskPaneExample() {
            JFrame frame = new JFrame("TaskPane Example 1");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add(doInit(), BorderLayout.CENTER);
            frame.setLocationRelativeTo(null);
            frame.pack();
            frame.setVisible(true);
        }

        private Component doInit() {
            JXTaskPaneContainer taskpanecontainer = new JXTaskPaneContainer();
            taskpanecontainer.setLayout(new VerticalLayout(2));

            final JXTaskPane taskpane1 = new JXTaskPane(){
                public void setCollapsed(boolean w){
                    super.setCollapsed(w);
                }};
            taskpane1.setTitle("First TaskPane");
            JPanel panel1 = new JPanel();
            panel1.setBackground(Color.red);
            panel1.setSize(100,100);
            taskpane1.add(panel1);
            taskpanecontainer.add(taskpane1);

            JXTaskPane taskpane2 …
Run Code Online (Sandbox Code Playgroud)

java swing swingx jxtaskpane

3
推荐指数
1
解决办法
4025
查看次数

在netbeans中使用java创建新组件

我正在为我的大学项目开发​​一个软件.我正在使用java来开发我的桌面应用程序.为此,我想添加这样的组件:http://www.mediafire.com/view/?6y1183p8u6phwzg

我想添加一个类似于下面框架左侧的组件.它是一个可调整大小的组件,包含标题和子菜单.我们还可以在Windows XP OS的左侧看到这些组件.我努力开发这个组件,只能制作一个可调整大小的组件,但它不会减少它们之间的空白空间.我将把我的代码放在下面并对我的应用程序进行抽样设计.我会觉得很感激,如果任何人可以给我一个解决方案,使我的组件工作,我希望还是给一个很好的解决方案,使这个component.Thank你了.:)

http://www.mediafire.com/view/?c9b8jwp4c558zae

    private void lbl1MousePressed(java.awt.event.MouseEvent evt) {                                  
    if (!(jpnTop.getSize().equals(lbl1.getSize()))) {
        try {
            Thread.sleep(100);
            jpnTop.setSize(lbl1.getSize());

        } catch (InterruptedException ex) {
        }

    } else {
        try {
            Thread.sleep(100);
            jpnTop.setSize(169, 162);


        } catch (InterruptedException ex) {
        }
    }
}  

  private void lbl2MousePressed(java.awt.event.MouseEvent evt) {                                  
    if (!(jpnLow.getSize().equals(lbl2.getSize()))) {
        try {
            Thread.sleep(100);
            jpnLow.setSize(lbl2.getSize());

        } catch (InterruptedException ex) {
        }

    } else {
        try {
            Thread.sleep(100);
            jpnLow.setSize(169, 162);

        } catch (InterruptedException ex) {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ps:由于这个网站的限制,我无法上传我的图片,请您使用上面的medeafire链接看到它们.非常感谢.

java swing swingx layout-manager jxtaskpane

3
推荐指数
1
解决办法
483
查看次数