Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Java 如何使拐角组件在JScrollPane中始终可见_Java_Swing_Jbutton_Jscrollpane_Jscrollbar - Fatal编程技术网

Java 如何使拐角组件在JScrollPane中始终可见

Java 如何使拐角组件在JScrollPane中始终可见,java,swing,jbutton,jscrollpane,jscrollbar,Java,Swing,Jbutton,Jscrollpane,Jscrollbar,给定 无论JTable是否为空,如何使cornerButton始终可见 我看到SwingX中的JXTable实现了这一点,但是,我无法从源代码中解释它是如何实现的 谢谢 我的问题是JScrollPane仅在ScrollPane的列标题视口中有内容时才显示按钮 我认为这是问题的一半。视口中需要一个组件来占用一些空间 我试着在那里放一个空的JPanel,但似乎不起作用 尝试在视口中使用空JPanel以及列标题中的面板: import javax.swing.*; public class Test

给定

无论JTable是否为空,如何使cornerButton始终可见

我看到SwingX中的JXTable实现了这一点,但是,我无法从源代码中解释它是如何实现的

谢谢

我的问题是JScrollPane仅在ScrollPane的列标题视口中有内容时才显示按钮

我认为这是问题的一半。视口中需要一个组件来占用一些空间

我试着在那里放一个空的JPanel,但似乎不起作用

尝试在视口中使用空JPanel以及列标题中的面板:

import javax.swing.*;

public class TestCornerComponent {

    public static void main(String args[]) {
        JTable table = new JTable();
        final JScrollPane scrollPane = new JScrollPane(table);

        /* button to put in corner */
        JButton cornerButton = new JButton("#");
        scrollPane.setCorner(JScrollPane.UPPER_TRAILING_CORNER,
            cornerButton);

        scrollPane.setVerticalScrollBarPolicy(
                JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);


        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                JFrame frame = new JFrame("Test corner component");
                frame.getContentPane().add(scrollPane);
                frame.setVisible(true);
            }
        });
    }
}
我的问题是JScrollPane仅在ScrollPane的列标题视口中有内容时才显示按钮

我认为这是问题的一半。视口中需要一个组件来占用一些空间

我试着在那里放一个空的JPanel,但似乎不起作用

尝试在视口中使用空JPanel以及列标题中的面板:

import javax.swing.*;

public class TestCornerComponent {

    public static void main(String args[]) {
        JTable table = new JTable();
        final JScrollPane scrollPane = new JScrollPane(table);

        /* button to put in corner */
        JButton cornerButton = new JButton("#");
        scrollPane.setCorner(JScrollPane.UPPER_TRAILING_CORNER,
            cornerButton);

        scrollPane.setVerticalScrollBarPolicy(
                JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);


        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                JFrame frame = new JFrame("Test corner component");
                frame.getContentPane().add(scrollPane);
                frame.setVisible(true);
            }
        });
    }
}

好的,这只有在JScrollBar可见的情况下才可能。谢谢你的建议,但是,这就是为什么我添加了scrollPane.setVerticalScrollBarPolicyJScrollPane.VERTICAL\u SCROLLBAR\u ALWAYS;。我的问题是JScrollPane仅在ScrollPane的列标题视口中有内容时才显示按钮。我尝试过在其中放置一个空的JPanel,但似乎不起作用。同意没有JTableHeader可能不起作用,但是有没有理由创建一个没有JTableHeader的JTable空JTable,如SSCE+1中所示,如果是,则不容易,决不要对类似Excel中的自定义透视表进行编辑,这样,如果没有选择要透视的列,则该表为空。我会继续找的。再次感谢您的帮助。好的,这只有在JScrollBar可见的情况下才可能。谢谢您的建议,但是,这就是为什么我添加了scrollPane.setVerticalScrollBarPolicyJScrollPane.VERTICAL\u SCROLLBAR\u ALWAYS;。我的问题是JScrollPane仅在ScrollPane的列标题视口中有内容时才显示按钮。我尝试过在其中放置一个空的JPanel,但似乎不起作用。同意没有JTableHeader可能不起作用,但是有没有理由创建一个没有JTableHeader的JTable空JTable,如SSCE+1中所示,如果是,则不容易,决不要对类似Excel中的自定义透视表进行编辑,这样,如果没有选择要透视的列,则该表为空。我会继续找的。再次感谢你的帮助,太好了!设置首选尺寸是我所缺少的!非常感谢。太好了!设置首选尺寸是我所缺少的!非常感谢。