如何在Java窗口外获取鼠标点击坐标

我需要使用Swing实现一个类,当用户点击屏幕上的任何位置时,可以获取鼠标坐标。 如果我想在我自己的窗口中获取鼠标坐标,我会使用MouseListener ,但我希望它能够工作,即使用户点击我的程序外。 我希望我的课程表现得像KColorChooser :用户点击下拉按钮,他可以点击屏幕上的任意位置以获得该点的颜色。 但我不知道是否可以使用纯Java。

Java如何存储字符串以及子字符串如何在内部工作?

class StringTesting { public static void main(String args[]) { String str = “abcd”; String str1 = new String(“abcd”); String str2 = str.substring(0,2); String str3 = str.substring(0,2); String str4 = str.substring(0,str.length()); String str5 = str1.substring(0,2); String str6 = str1.substring(0,2); String str7 = str1.substring(0,str1.length()); System.out.println(str2 == str3); System.out.println(str == str4); System.out.println(str5 == str6); System.out.println(str1 == str7); } […]

为什么SSL握手会给出“无法生成DH密钥对”的exception?

当我与某些IRC服务器建立SSL连接(但不是其他服务器 – 可能是由于服务器的首选加密方法),我得到以下exception: Caused by: java.lang.RuntimeException: Could not generate DH keypair at com.sun.net.ssl.internal.ssl.DHCrypt.(DHCrypt.java:106) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverKeyExchange(ClientHandshaker.java:556) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:183) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) … 3 more 最终原因: Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive) at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DashoA13*..) at java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:627) at […]

OnClickListener没有响应

我无法让我的点击监听器工作。 正确检索ImageButton。 监听器(扩展我设置视图的自定义活动): @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(“UserActivity”, “Loading imagebutton…”); ImageButton iButton = (ImageButton) findViewById(R.id.user_button_ratings); Log.d(“UserActivity”, “Button ” + iButton); iButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.e(“Button”, “Image was clicked”); } }); } BaseActivity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayoutId()); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); drawerToggle = new […]

Java中静态字段的确切含义是什么?

我想在同一类的各种对象实例之间共享一个对象。 从概念上讲,当我的程序运行时,A类的所有对象都访问B类的同一对象。 我已经看到static是系统范围的,并且不鼓励使用它。 这是否意味着如果我在实例化A类对象的同一JVM上运行另一个程序,这些对象可能会访问与前一个程序中访问的对象相同的B对象? 使用静态字段背后的缺点一般是什么? 有没有其他选择(不需要大量的实施)?

为什么不扩展JFrame和其他组件?

我已经看到过这里出现过几次,但在我看过的post中,没有人解释过。 为什么我不应该扩展JFrame(或任何组件)? 是否存在我应该扩展组件的条件,或者这是一个你不应该遵守的坚定规则?

覆盖java equals()方法 – 不工作?

我今天用equals()方法遇到了一个有趣(而且非常令人沮丧)的问题,这导致了我认为是经过良好测试的类崩溃并导致我花了很长时间才能追踪的错误。 为了完整起见,我没有使用IDE或调试器 – 只是老式的文本编辑器和System.out。 时间非常有限,这是一个学校项目。 无论如何 – 我正在开发一个基本的购物车,它可以包含Book对象的ArrayList 。 为了实现addBook() , removeBook()和hasBook()方法,我想检查Book已存在Book 。 我走了 – public boolean equals(Book b) { … // More code here – null checks if (b.getID() == this.getID()) return true; else return false; } 一切都在测试中运行良好。 我创建了6个对象并用数据填充它们。 在Cart上做了很多添加,删除,has()操作,一切正常。 我读到你可以有equals(TYPE var)或equals(Object o) { (CAST) var }但是假设它既然有效,也没关系太多。 然后我遇到了一个问题 – 我需要在Book类中创建一个只有 ID的Book对象。 不会输入任何其他数据。 基本上如下: public […]

从枚举中选择一个随机值?

如果我有这样的枚举: public enum Letter { A, B, C, //… } 随机选择一个的最佳方法是什么? 它不需要是生产质量的防弹,但相当均匀的分布将是不错的。 我可以做这样的事情 private Letter randomLetter() { int pick = new Random().nextInt(Letter.values().length); return Letter.values()[pick]; } 但有更好的方法吗? 我觉得这是以前已经解决的问题。

如何在列中显示饼图的图例?

我有一个有很多部分的PieChart,这个PieChart的图例呈现为一行。 如何将图例渲染为两列?

按名称获取Swing组件

我在JFrame有一些组件,我想引用另一个JFrame ,我希望通过名称获取它们,而不是为每个组件执行公共get / set方法。 是否有一种方法可以让Swing通过其名称获得组件引用,例如do c#? 例如form.Controls[“text”] 谢谢