小编nat*_*han的帖子

为什么JScrollPane不响应鼠标滚轮事件?

我有一个JScrollPane包含BoxLayout(PAGE AXIS)的面板.

我的问题是JScrollPane不响应鼠标滚轮事件.要使用鼠标滚轮滚动我需要在JScrollBar.

我发现这个线索,我没有MouseMotionListenerMouseWheelListener只有一个MouseListener.我认为我的问题来自于我的JScrollPane行为JPanel包含其他面板本身.因此,当鼠标位于其中的面板上时JScrollPane,似乎该面板消耗了该事件,我从未见过滚动窗格.

是否有正确的方法可以使滚动窗格的子项捕获的事件对此滚动窗格可见?

SSCCE:

在此输入图像描述

这是一个简单的测试用例,试图显示我在Swing应用程序中尝试的时间.

框架:

public class NewJFrame extends javax.swing.JFrame {

    public NewJFrame() {
        initComponents();
        for (int i = 0; i < 50; i++) {
            jPanel1.add(new TestPanel());
        }
    }

private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        jPanel1 = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1,    javax.swing.BoxLayout.PAGE_AXIS));
        jScrollPane1.setViewportView(jPanel1);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);

        pack();
    }

    public static void main(String args[]) …
Run Code Online (Sandbox Code Playgroud)

events swing mouseevent jscrollpane

14
推荐指数
2
解决办法
7741
查看次数

矩形形状有两种纯色

我想创建一个带有两种纯色(水平)的矩形形状来实现这样的效果:

在此输入图像描述

我听说过layer-list,虽然我可以使用它来包含两个不同颜色的矩形,但它似乎只是垂直放置形状.

有没有办法用lalyer-list实现这个目标,还是应该使用完全不同的东西?我想保持简单,能够在运行时更改形状颜色.

谢谢.

android shape android-xml

10
推荐指数
2
解决办法
2万
查看次数

如何更改JSeparator的颜色?

问题出在标题中.

我目前正在做类似的事情:

jSperator = new JSeparator();
jSeparator1.setForeground(new java.awt.Color(255, 51, 51));
Run Code Online (Sandbox Code Playgroud)

但分隔符保持默认颜色,如212,212,212.

java swing colors jseparator

7
推荐指数
2
解决办法
9238
查看次数

getChildFragmentManager在4.0.3设备上引发NoSuchMethod异常,但在4.2.2上没引发异常

我需要为我的应用程序使用嵌套片段,所以我想使用getChildFragmentManager.

我有两个设备:

  • 一个真正的4.0.3运行
  • 在4.2.2上运行的虚拟虚拟机

它在第二个上运行得很好,但在我的物理设备上却没有,因为对此方法的调用会引发NoSuchMethod异常.

07-10 19:53:51.722: E/AndroidRuntime(29711): java.lang.NoSuchMethodError: fr.epitech.test_esi.fragments.ReservationCalendarFragment.getChildFragmentManager
Run Code Online (Sandbox Code Playgroud)

我的项目使用引用的库,所以我下载了最新的android支持库(来自SDK管理器),我已将它添加到库和主项目中.

Eclipse中的项目视图

此外,我决定将支持的最小sdk版本设置为4.0.3(我的真实设备运行的版本):

<uses-sdk
    android:minSdkVersion="15"
    android:targetSdkVersion="17" />
Run Code Online (Sandbox Code Playgroud)

对于主项目和图书馆.

如果有人知道我能做错什么,请告诉我.

android android-fragments android-support-library android-nested-fragment

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

我可以在 Swing 的组件边界之外绘制吗?

可能的重复:
在组件边界之外绘制

我想使用 Swing(和 SwingX)制作“好看”的界面,但我仍在努力创建漂亮的阴影。我发现在 SwingX DropShadowBorder 中已经有一个边框做我想要的(部分)。

我也发现了这一点,阴影非常好,但它适用于图像。但我相信你可以让它与JComponent. 我已经修改了代码以生成一个BufferedImage具有组件大小的空(它仅适用于矩形组件,但我并不在乎)并从此图像创建阴影。

阴影生成有效,但我的问题是我只能在摆动组件的边界内渲染阴影,但我必须在两个轴上渲染具有偏移量的阴影。

我可以避免这种情况并在组件边界之外渲染吗?例如,我可以在大小为 (50, 50) 的组件的 paintComponent 方法中在 (0, 100) 处绘制任何内容吗?

谢谢。

编辑:这是我想避免的一个例子。阴影超过了两个轴的组件的大小(组件没有渲染让你看到阴影)。

在此处输入图片说明

EDIT2:我不确定我是否足够清楚(如果是这样,我很抱歉)所以这里是我想要做的事情的图形表示。

在此处输入图片说明

java graphics swing border swingx

5
推荐指数
1
解决办法
1214
查看次数

如何让JPopupMenu透明化?

我想自定义外观,JPopupMenu所以我在i上创建了一个自定义类,扩展了JPopupMenu类,覆盖了paintComponent方法,就像我需要自定义的任何组件一样.

public class CustomPopupMenu extends JPopupMenu {

    @Override
    public paintComponent(Graphics g) {
        //custom draw
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道的唯一问题是我无法JPopupMenu透明化.我setOpaque(false)觉得够了,我错了.

我怎样才能JPopupMenu透明?

java swing transparent jpopupmenu jpopup

5
推荐指数
1
解决办法
4116
查看次数

如何知道JScrollBar是否已到达JScrollPane的底部?

我想知道是否有办法知道什么时候JScrollBar(在我的情况下是垂直的)到达了他的包含的底部JScrollPane.

起初我虽然AdjustmentListener在滚动条上使用了一个但我不知道如何解释该value属性JScrollBar.此外,我不确定正确理解maximum代表什么,如果我可以使用该值来获取我需要的信息.

编辑:

scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
    @Override
    public void adjustmentValueChanged(AdjustmentEvent ae) {
        System.out.println("Value: " + scrollPane.getVerticalScrollBar().getValue() + " Max: " + scrollPane.getVerticalScrollBar().getMaximum());
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane jscrollbar

5
推荐指数
1
解决办法
8208
查看次数

优雅的方式来生成关于百分比的随机值?

我有N个值(整数).我想知道在百分比中随机选择其中一个值的最优雅方式是什么.例如,对于3值示例:

  • 价值1有30%的机会被选中
  • 价值2有12%的机会被选中
  • 价值3有45%的机会被选中

我需要这个用于我用Java开发的程序,但是伪代码算法或任何其他语言的代码都可以.

java random algorithm percentage

4
推荐指数
2
解决办法
9138
查看次数

TopComponent调整大小的行为

目前,当您尝试手动调整TopComponent的大小时,它将显示一条黑线,显示TopComponent的未来大小.

在此输入图像描述

我想知道JComponent这条黑线的背后是什么?我怎样才能访问它?


编辑

我的问题的第一部分得到了回答.附图中显示的组件是a JSplitPane.

现在,我希望能够访问它(即获取JSplitPane用于TopComponent在netbeans平台中调整大小的实例).

java swing netbeans jsplitpane netbeans-platform

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

为什么 Query、TermQuery 等不再在 Lucene 4.0 中实现 Serializable?

我需要Query使用 EJB 通过网络发送一个包含 Lucene 元素的类,当然这个类需要被序列化。我将我的班级标记为,Serializable但似乎还不够:

org.apache.lucene.search.TermQuery is not Serializable
Run Code Online (Sandbox Code Playgroud)

事实上,当我阅读 Lucene (4.0) 的最后一个稳定版本的 javadoc 时,我可以看到TermQuery它没有实现 Serializable,Query也没有。我不明白的是为什么这些类曾经Serializable在上一个版本(3.6.1)中实现,为什么不再如此?

java lucene serialization

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

ocaml - 具有可变字段的记录数组

我是OCaml的新手,我正在努力理解它的概念mutable record field.

我想创建一个记录数组,该记录包含一个布尔可变字段.所以我做了类似的事情:

type t = {i: int; mutable b: bool};;
Run Code Online (Sandbox Code Playgroud)

我希望能够更改记录的'b'字段的值,所以我把它 mutable

let m = Array.make 10 ({i = 5; b = false});;
Run Code Online (Sandbox Code Playgroud)

在这里,我尝试设置位于我的数组的第一个索引处的记录的b字段:

(Array.get m 0).b <- true;;
Run Code Online (Sandbox Code Playgroud)

问题是我想要它,它将设置数组的所有记录的'b'字段,这不是我想要的.

同一记录的可变字段是否共享相同的内存位置?如何更改特定记录的"b"字段的值?

ocaml records mutable

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