小编tig*_*ger的帖子

Java中有SoftHashMap吗?

我知道有一个WeakHashMapin java.util,但由于它只使用了WeakReferences,只有这个Map引用,引用的对象将在下一个GC循环中丢失.因此,如果您想要缓存随机数据,这几乎是无用的,这很可能会再次被请求而不会在其余时间进行硬链接.最好的解决方案是使用SoftReferences代替的地图,但我没有在Java RT Package中找到一个.

java weak-references hashmap soft-references

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

如何修改HttpUrlConnection的标头

我试图改进Java Html文档一点点,但我遇到了问题HttpUrlConntion.有一点是,如果用户代理是Java VM,某些服务器会阻止请求.另一个问题是HttpUrlConnection没有设置ReferrerLocation头字段.由于几个站点使用这些字段来验证内容是从他们自己的站点访问的,因此我也被阻止了.据我所知,唯一的解决方案是替换HTTP协议的URL处理程序.或者有没有办法修改默认的HTTP Handler?

java http httpurlconnection http-headers

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

如何禁用JLabel的自动HTML支持?

如果以<html>开头,Swing JLabel会自动将任何文本解释为HTML内容.如果此HTML的内容是包含无效URL的图像,则会导致整个GUI挂起,因为应加载此图像的ImageFetche将由NPE退出.

要重现此问题,只需按如下方式创建JLabel

new JLabel("<html><img src='http:\\\\invalid\\url'>")
Run Code Online (Sandbox Code Playgroud)

我知道有一个客户端属性可以防止JLabel解释HTML.但是JLabel是许多Swing组件(如JTree,JTable等)的默认渲染器实现,这使得几乎任何允许用户输入的Swing应用程序都成为问题.因此,我没有实现大量的自定义渲染器,而是在寻找一种全局解决方案来禁用HTML解释.

html java security jlabel

8
推荐指数
3
解决办法
2409
查看次数

可以有多个AWT事件队列吗?

我在Opera 9.64 Build 10487中的JVM 1.6.0_12上运行了一个applet的线程转储 - 它显示了三个事件队列!据我所知,Java Swing事件处理是单线程的 - 在最近的任何更新中都做了这个改变吗?

我的问题是,多个事件队列往往会导致死锁,因为我有更多的锁而不仅仅是GUI TreeLock.

java queue events swing multithreading

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

如何在validateTree期间获得正确的可见矩形?

首先描述问题:在由于宽度或高度的变化而重新布局期间,Java的ScrollPaneLayout在设置其视口的边界之前请求其子节点的preferredSize.在Text-Components上调用getPreferredSpan可以更改布局,因为此getPreferredSpan在内部调用setSize.结果是,在这种情况下,没有视图(扩展javax.swing.text.View)可以确保检索它的父组件的实际大小.由于尚未设置视口的边界,因此getVisibleRect将在此位置失败.检查文本组件的有效性以阻止布局过程不是一个选项,因为在这种情况下它已经是有效的.

所以,问题是:是否有可能找出JComponent的边界是否是最新的?

java layout swing scroll

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

在Linux平台上使用套接字时是否存在文件描述符泄漏?

如果我通过调用例如打开和关闭套接字

Socket s = new Socket( ... );
s.setReuseAddress(true);
in = s.getInputStream();
...
in.close(); 
s.close();      
Run Code Online (Sandbox Code Playgroud)

Linux声明此套接字仍处于打开状态,或者至少是连接的文件描述符.当lsof查询此进程的打开文件时,有一个关闭连接的条目:

COMMAND  PID   USER   FD   TYPE DEVICE     SIZE   NODE NAME
java    9268 user    5u  sock    0,4           93417 can't identify protocol
Run Code Online (Sandbox Code Playgroud)

此条目将一直保留到程序关闭之前.有没有其他方法可以最终关闭套接字?我有点担心我的java应用程序可能会阻塞许多文件描述符.这可能吗?或者,即使重新设置了ReuseAdress,java还是会保留这些套接字来重用它们吗?

java sockets linux file-descriptor

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

可以自动处理ThreadStatic IDisposable吗?

这不是一个如何自动调用dispose的问题 - 我的问题恰恰相反:我有一个线程池,其中每个线程都有一个ThreadStatic Graphics(由Image创建)来执行文本大小测量.现在我遇到了一个问题,即不时读取TextRenderingHint属性失败(导致ArgumentException),图形似乎被处理掉了.

是否存在一些处理图形的机制,例如,如果线程长时间处于空闲状态?

.net c# graphics idisposable threadstatic

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

如果底层窗口在 ESC 上关闭,如何为 JPopupMenu 启用 ESC-Close?

想象一下两种常见情况的组合:在 VK_ESCAPE 上关闭的 JDialog(或 JFrame)(设置为根窗格上的键绑定)和应该在 ESC 上关闭的内部 JPopupMenu。问题是:如果弹出窗口可见,按 Esc 总是关闭对话框 - 事件。显然,弹出窗口甚至没有收到键事件,因此它不能被弹出窗口使用。有没有办法让它正常工作,以便在第一个 ESC 事件上关闭弹出窗口,在第二个关闭对话框?顺便说一句:它确实与 JComboBox 一起使用,默认情况下,当按下转义键时它会关闭。

java keyevent jdialog jpopupmenu

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