小编Mic*_*rry的帖子

JWindow在Java中的半透明背景(不使用屏幕截图)

我已经看到了这个问题的其他答案和黑客,但似乎没有人完全按照我的意思去做.

基本上,我是在一个JWindow之后,它的背景是半透明的,但窗口本身的内容(按钮,文本等)是不透明的.到目前为止我看到的方法分为两类:

  • 从窗口后面截取屏幕并使用它们(http://onjava.com/pub/a/onjava/excerpt/swinghks_hack41/index.html) - 这在这种情况下并不太好,因为它太慢了,我想要能够将视频之类的东西放在窗户后面并让它显示出来
  • 使整个窗口半透明(包括我需要保持不透明的组件.)

我要求的是可能的,如果是这样,它会怎么做?如果没有,Java 7是否会提供任何方法来使这更容易/可能?我知道它为形状窗户提供了更多支持,所以我想知道是否有什么东西可以解决这个问题.我一直在寻找一段时间,但没有运气.

java swing translucency

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

代码段的时间复杂度

从在线笔记中,我阅读了以下用于反转字符串的java代码片段,据称该字符串具有二次时间复杂度.在我看来,我的"for"循环只是迭代s的整个长度.它是如何导致二次时间复杂度的?

public static String reverse(String s)
{
  String rev = new String();
  for (int i = (s.length()-1); i>=0; i--) {
      rev = rev.append(s.charAt(i));
  }
  return rev.toString();
}
Run Code Online (Sandbox Code Playgroud)

java string algorithm data-structures

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

在窗口的任何位置检测鼠标单击

我写了一个JWindow,它在我的应用程序中有点像一个奇特的菜单,当按下按钮时弹出.但是,如果用户点击主窗口中的任何位置,我希望它消失.我当然可以在主窗口中添加一个鼠标监听器,但是它不会将它添加到窗口本身的所有组件上,并且循环遍历所有组件看起来像是一个暴力解决方案(并且不能是如果窗口上的组件发生变化,保证可以正常工作.)

做这样的事情最好的方法是什么?

java swing mouseevent windowlistener

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

Java游戏的滞后

我正在用Java编写游戏.哦,不知道,我有性能问题.我对油漆本身进行了基准测试 - 在3毫秒的顶部进行了1000次循环.游戏逻辑甚至低于这个.到现在为止还挺好.但我仍然遇到一个烦人的滞后:滚动时,缩放时,点击时.当我放大并放置更多物体时,问题变得更糟.但是仍然 - 即使我将绘画循环1000次,滞后也大致相同,所以不能这样.我尝试将循环放在一个任务中 - 仍然是相同的.我试图在涂料之间暂停任务 - 仍然是一样的.动画像丝绸一样平滑(因为帧速率稳定且高,这是有道理的).那么我究竟如何有条不紊地组织投入呢?把它们全部放在一个单独的线程中?任何输入都会非常感激!

java multithreading awt lag

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

iOS App在模拟器上运行但不在设备上运行?

我的应用程序没有错误,警告或内存泄漏,在模拟器上运行完美,但我的iPhone 4上运行iOS 5的黑屏.这SIGABRT是在主线上发生的:

int retVal = UIApplicationMain(argc, argv, nil, nil);
Run Code Online (Sandbox Code Playgroud)

由于我的代码似乎没问题,有没有人知道什么样的东西一般会导致这种行为?

我还能在哪里寻找可能的错误?SIGABRT我得到的所有参考文献都是汇编... 0.o

编辑: 调试器的输出:

This GDB was configured as "--host=i386-apple-darwin --target=arm-apple-darwin".tty /dev/ttys000
sharedlibrary apply-load-rules all
target remote-mobile /tmp/.XcodeGDBRemote-4281-83
Switching to remote-macosx protocol
mem 0x1000 0x3fffffff cache
mem 0x40000000 0xffffffff none
mem 0x00000000 0x0fff none
[Switching to process 7171 thread 0x1c03]
[Switching to process 7171 thread 0x1c03]
Couldn't register BearNun.Stack-Meet-App with the bootstrap server. Error: unknown error code.
This generally means that another instance of this …
Run Code Online (Sandbox Code Playgroud)

iphone crash xcode objective-c ios5

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

试图获取ENTER键的char代码

我有这个代码:

newSymbolTextBox.addKeyPressHandler(new KeyPressHandler() {
  public void onKeyPress(KeyPressEvent event) {
      System.out.println("foo =" + KeyCodes.KEY_ENTER);
  System.out.println("bar =" + event.getCharCode());
  }
});
Run Code Online (Sandbox Code Playgroud)

当我按下ENTER时,我得到这个输出:

foo =13
bar =
Run Code Online (Sandbox Code Playgroud)

之后我期待一个价值bar =.任何的想法?

java gwt

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

需要Jbuttons透明外观

我正在使用Java Netbeans GUI Builder来制作GUI.我想给按钮一个透明(有光泽)的外观.我正在使用

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Run Code Online (Sandbox Code Playgroud)

这也给了GUI很好的外观,但按钮仍然是相同的无聊按钮.

那么,如何给按钮一个透明的外观呢?

java swing transparency netbeans look-and-feel

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

递归迭代hashmap

我想从散列图中检索k,v对.这些托管是这样的:

a = 3,4 
b = 5,6
Run Code Online (Sandbox Code Playgroud)

等等.我需要这些值的组合.

a=3, b=5. 
a=3, b=6.
a=4, b=5.
a=4, b=6.
Run Code Online (Sandbox Code Playgroud)

我不知道有多少个键和多少个值.使用entryset我可以得到值而不是组合.它看起来像递归,但如何?

这是我的代码:

HashMap<String, String[]> map = new HashMap<String, String[]>();

BufferedReader file = new BufferedReader(new FileReader("test.txt"));
String str;


while ((str = file.readLine()) != null) { 


    ... logic


    map.put(key, value);



}
System.out.println("number of keys: " + map.size());
for(Entry<String, String[]> entry : map.entrySet()) {
    for(String value : entry.getValue()) {
        System.out.println(entry.getKey() + ": " + value);
    }
}
file.close();
Run Code Online (Sandbox Code Playgroud)

java recursion hashmap

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

JSplitPane和Canvas

作为我写的应用程序的一部分,我需要将旧的(重量级)Canvas与swing组件混合 - 特别是将它们嵌套在JSplitPane中.但是,当我这样做时,分隔符拒绝在任何地方调整大小,好像两个画布都不会接受缩小尺寸.因此,证明该问题的代码如下:

JFrame frame = new JFrame();
JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new Canvas(), new Canvas());
pane.setResizeWeight(0.5);
frame.add(pane);
frame.pack();
frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

我最初认为这是一个很容易解决的问题,但是在做了一些研究后,选项似乎表现为:

  • 改为使用JPanel(并不总是一个选项,就像我使用vlcj直接渲染到画布上一样)
  • 插入可能在某些情况下有用的狡猾的黑客攻击

有没有更好的方法呢?或者它真的只是诉诸黑客的情况?我已经讨论了其他选项,例如,如果可用的替代SplitPane实现可行,但是没有重量级实现,如果轻量级实现避免问题,我会感到惊讶.

java swing canvas awt jsplitpane

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

从 BoxLayout 中移除时组件不会移动

我正在使用 BoxLayout 并动态地从中删除组件,如下所示:

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            final JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
            final JLabel l = new JLabel("remove");
            frame.add(l);
            frame.add(new JLabel("Hello2"));
            frame.add(new JLabel("Hello3"));
            frame.pack();
            frame.setVisible(true);

            new Thread() {
                public void run() {
                    Utils.sleep(1000);
                    SwingUtilities.invokeLater(new Runnable() {
                        public void run() {
                            frame.remove(l);
                            frame.repaint();
                        }
                    });
                }
            }.start();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,这样做时,即使有问题的标签已从布局中删除,其他组件也不会向上移动以覆盖其空间,直到我调整框架大小。我尝试在移除组件后重新绘制框架,但没有运气 - 标签不再显示,但仍然存在原来的间隙。

除了每次删除组件时自动调整窗口大小的明显可怕的困境之外,我如何获得所需的行为?

java swing boxlayout

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