在另一个线程中,我说过我喜欢通过做这样的事情来集中我的GUI:
JFrame frame = new JFrame("Foo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new HexagonGrid());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
但安德鲁汤普森有不同的意见,而是打电话
frame.pack();
frame.setLocationByPlatform(true);
Run Code Online (Sandbox Code Playgroud)
和询问的头脑想知道为什么?
Loop.times(5, () -> {
System.out.println("looping");
});
Run Code Online (Sandbox Code Playgroud)
哪些有效编译到?
for(int i = 0; i < 5; i++)
System.out.println("looping");
Run Code Online (Sandbox Code Playgroud)
或类似的东西
new CallableInterfaceImpl(){
public void call(){
for(int i = 0; i < 5; i++)
System.out.println("looping");
}
}.call();
Run Code Online (Sandbox Code Playgroud)
它会替换(内联类),还是实际创建一个匿名类?
我是一名.Net开发人员,但不知何故,我的任务是在java中创建一个简单的应用程序,原因还有一些.我能够创建该应用程序但我的问题是如何在应用程序启动时将窗体置于屏幕中心?
这是我的代码:
private void formWindowActivated(java.awt.event.WindowEvent evt)
{
// Get the size of the screen
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
// Determine the new location of the window
int w = this.getSize().width;
int h = this.getSize().height;
int x = (dim.width-w)/2;
int y = (dim.height-h)/2;
// Move the window
this.setLocation(x, y);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,但问题是我已经看到表单从最顶层移动到中心屏幕.我也尝试在formWindowOpened事件中添加该代码并仍然显示相同的操作.有更好的方法吗?就像.NET Application有一个CenterScreen Position.或者,如果上面的代码是正确的,我将把它放在什么事件上?
感谢您阅读本文.
我正在尝试使用Java升级我的应用程序,只有在具有特定名称的进程窗口处于活动状态时才能工作.我发现使用JNI可以实现这一点,但我不知道究竟是怎么做到的.我找不到任何可以解释它的描述或例子.我的问题是 - 如何在Windows中获取当前活动窗口的进程名称(通过JNI或其他任何方式 - 我接受任何其他解决方案)?
我想根据所有可能的分隔符解析整个文件,如逗号,冒号,冒号,句号,空格,hipns等.
假设我有一个假设的字符串"嗨,X怎么样:你呢?" 我应该得到输出数组的项目Hi,X,How,how,are,any和you.
如何在String.split方法中指定所有这些分隔符?
提前致谢.
在Mac 10.6中,我想让活动应用程序变为非活动状态,或者通过Python最小化
我知道我可以在Windows中使用带有Python的sendKey,那么在Mac中呢?
机器人是AWT库的一部分,但它似乎与大多数库的其他部分完全不同.我正在创建一个Swing GUI,它将Swing与Java Native Access(JNA)和Robot混合在一起,以允许Java驱动某些MS Windows/Citrix工作程序.我的直觉是,因为Robot会在"平台的本机输入队列"上排队事件,我想做的最后一件事就是在EDT上运行它,但另一方面,AWT和Swing库中的大多数类都是如此.应该在Swing事件线程上运行.因此,为了让我在脑海中澄清这一点,请让我尽可能具体地问一个问题:
机器人方法(特别是按键和释放,鼠标移动,鼠标按下和释放)是否应该在Swing事件调度线程(EDT)上运行?
插入哈希映射时,是否总是要检查是否存在与要插入的密钥对应的空值?
例如,如果我想跟踪字符出现在单词中的次数,使用hashmap,我是否总是这样做:
if(hashMap.containsKey(ch)){
hashMap.replace(ch, 1+hashMap.get(ch));
}
else{
hashMap.put(ch, 1);
}
Run Code Online (Sandbox Code Playgroud)
或者有一个功能可以为我处理这个?
我正在使用java并且必须处理大于long的数字(64位).我该怎么用?java中BigInteger的大小是多少?
我正在尝试编写一个Java应用程序,它在屏幕上绘制多个球,从框架的边缘反弹.我可以成功地画出一个球.但是当我添加第二个球时,它会覆盖我绘制的初始球.代码是:
import java.awt.*;
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
public class Ball extends JPanel implements Runnable {
List<Ball> balls = new ArrayList<Ball>();
Color color;
int diameter;
long delay;
private int x;
private int y;
private int vx;
private int vy;
public Ball(String ballcolor, int xvelocity, int yvelocity) {
if(ballcolor == "red") {
color = Color.red;
}
else if(ballcolor == "blue") {
color = Color.blue;
}
else if(ballcolor == "black") {
color = Color.black;
}
else if(ballcolor == "cyan") {
color …Run Code Online (Sandbox Code Playgroud)