在Swing中,有没有办法为JComboBox中的每个项目定义鼠标悬停文本(或工具提示文本)?
预计多点触控界面变得越来越普遍的日子,Java中的库是否可以用于开发触摸应用程序?我正在寻找类似于MouseListener/MouseMotionListener/MouseWheelListener的接口.
我正在尝试找到一个简单的Java API来创建图形关系.它应该有一些功能,例如addEdge()
,addNode()
,isConnected(node1, node2)
,findPaths(node1, node2)
,等我不需要UI,只是逻辑.
我发现了一堆学术项目,但似乎都没有" The Definitive Graph API ".
有谁知道这样的API?
为什么我用这个Java代码会出现编译器错误?
1 public List<? extends Foo> getFoos()
2 {
3 List<? extends Foo> foos = new ArrayList<? extends Foo>();
4 foos.add(new SubFoo());
5 return foos;
6 }
Run Code Online (Sandbox Code Playgroud)
其中'SubFoo'是实现Foo的具体类,而Foo是一个接口.
我用这段代码得到的错误:
更新:感谢Jeff C,我可以更改第3行来说"new ArrayList <Foo>();".但我仍然遇到第4行的问题.
我知道有很多"自己动手"的JavaScript编辑器,比如W3School的Try It编辑器,JSBin和JSFiddle.
我正在开发一个图形化的JavaScript库,我想让人们从我自己的网站上试用(与其他编辑器的一个区别是我的输出是画布,而不是HTML框架).不想重新发明轮子,是否已经建立了创建"自己动手"功能的方法,可以考虑基于DOM的脚本漏洞等问题?
我正在寻找可用于在运行时生成声音的Java代码 - 不播放现有的声音文件.
例如,在440 Hz持续2毫秒产生锯齿波形的最佳代码是什么?源代码赞赏!
我记得我的Commodore 128有一个简单的声音命令,它将声音,频率,波形和持续时间作为参数来定义声音.这在很多简单的案例(快速和肮脏的游戏,声音实验等)中都很有用.
我正在寻找特殊的声音效果,如声音,而不是音乐或MIDI(JFugue图书馆非常清楚).
当我学习如何在Java中激活事件时,我熟悉了EventListenerList.当我创建自己的侦听器时,我编写了侦听器,因此它扩展了EventListener,我将它们存储在EventListenerList中,我的fire方法将通过这样的事件侦听器:
protected void fireChangeOccurred(Change change) {
Object[] listeners = listenerList.getListenerList();
for (int i = listeners.length-2; i>=0; i-=2) {
if (listeners[i]==ChangeListener.class) {
((ChangeListener)listeners[i+1]).changeOccurred(change);
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我正在查看只是将侦听器放入HashMap(可能是任何集合)的代码,侦听器接口不会扩展EventListener,而fire方法如下所示:
protected void fireChangeOccurred(Change change) {
for (ChangeListener listener : listeners) {
listener.changeOccurred(change);
}
}
Run Code Online (Sandbox Code Playgroud)
使用EventListenerList而不仅仅是维护我自己的侦听器列表有什么好处?只有侦听器在Swing组件中才真正重要 - 对于事件调度线程是否重要?
我使用Swing开发了许多桌面Java应用程序,虽然Swing非常强大(一旦你掌握了它),仍然有很多情况我希望一些高级组件可以直接使用.
例如,我真的很想看到易于使用的组件(没有自己编写,我可以给予足够的时间),如:
我知道有几个免费Swing组件的来源,比如SwingLabs,JXTable的主页,JXDatePicker和其他几个.
除了Java本身之外,你在哪里选择Swing组件?
这个简单的代码不会在我用来测试它的几台机器上产生任何声音.我正在运行Eclipse中的代码,但我也尝试使用命令行无济于事.
public static void main(String[] args)
{
try {
Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
MidiChannel[] channels = synthesizer.getChannels();
channels[0].noteOn(60, 60);
Thread.sleep(200);
channels[0].noteOff(60);
synthesizer.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
通过获取音序器,将MIDI事件添加到序列并播放序列,我能够成功获得声音,但我正在尝试做一些实时音乐效果,音序器不支持.
有任何想法吗?
编辑解决方案:事实证明问题在于,默认情况下,JRE没有声音库(有趣的是,使用Sequencer工作,但使用合成器没有).谢谢,thejmc!
为了解决这个问题,我从java.sun.com下载了一个soundbank并将其放入(在WinXP上)C:\ Program Files\jre1.6.0_07\lib\audio(必须制作音频文件夹).
我们有相当多的代码只是跳转到Java 5.我们一直在那些针对Java 5版本发布的组件中使用泛型,但剩下的代码当然是充满原始的类型.我已经设置编译器为原始类型生成错误并开始手动清除它们,但是按照目前的速率,它需要很长时间才能完成它(大约有2500个错误).这是Eclipse的有用的Infer Generic Type快速修复,它总是摆脱错误,但经常生成需要进一步工作的代码.
有没有更好的方法来处理这个?有没有比Eclipse更好的自动化工具?有没有办法将重构应用于所有出现而不是一个一个地进行重构?或者你只是忽略警告?
java ×9
swing ×3
generics ×2
api ×1
audio ×1
components ×1
events ×1
graph-theory ×1
javascript ×1
legacy-code ×1
midi ×1
migration ×1
multi-touch ×1
touch ×1