我在 Linux 中的 Java 11 上使用 JavaFX 11.0.1(openSUSE Tumbleweed 20190314 上的 KDE Plasma 5.12.2)来创建一个如下所示的Alert对话框:
但大多数情况下,当 anAlert被创建并显示时,它呈现的太小了,看起来像这样:
大约五分之一Alert将正确显示。但其余时间显示的是无用的小版本。
用于显示此对话框的代码没有什么异常:
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Feature absent");
alert.setContentText(
"Feature \"edit application settings\" has not been finished yet.");
alert.showAndWait();
Run Code Online (Sandbox Code Playgroud)
我也试过这个建议通过将下面的尝试规模迫使一些有用的东西:
alert.getDialogPane().setMinHeight(Region.USE_PREF_SIZE);
alert.getDialogPane().setMinWidth(Region.USE_PREF_SIZE);
Run Code Online (Sandbox Code Playgroud)
但这给出了完全相同的行为。(请注意,即使为最小宽度和高度设置数值仍然不能解决问题。)
这是 JavaFX 11 中的已知错误吗?是否有一些已知的解决方法可以用来确保Alert对话框实际上是可读的?
我正在编写一个程序,按顺序完成以下任务:
我有一个单独的类用于每个任务和一个按顺序调用每个对象的主类。
我的问题是主类在第 1 步完成之前评估第 2 步。因为在主类调用对象2的时候用户还没有关闭JPanel,所以在步骤2开始之前没有收集到用户输入,导致程序崩溃。
我需要的是一种向第 2 类发出信号,表明第 1 类中的 JPanel 已关闭的方法。这样,在步骤 1 中收集了输入字段之后,步骤 2 就开始了。
有没有办法让第 1 类中的窗口关闭触发第 2 类中的操作?如果没有,解决这个问题的最佳方法是什么?
以下代码中的toString方法抛出NullPointerException,但printl打印后调用null.为什么他们没有相同的结果?THL
package exceptionsNullPointer;
public class NPArrays {
public static void main(String[] args) {
String[] laces = new String[2];
// this line throws NullPointerException
System.out.println(laces[1].toString());
// this line prints null
System.out.println(laces[1]);
}
}
Run Code Online (Sandbox Code Playgroud) 在monodroid中,我有一个java绑定,它返回一个Java.Lang.Enum对象.
当我尝试将此对象转换为int时,它会抛出.
System.InvalidCastException: Cannot cast from source type to destination type.
Run Code Online (Sandbox Code Playgroud)
这是我在调试器的即时窗口中得到的:
state
{OPENING}
base: {Java.Lang.Enum}
IsClosed: false
IsOpened: false
ThresholdClass: 0x1d200832
ThresholdType: {System.MonoType}
Run Code Online (Sandbox Code Playgroud)
我很惊讶枚举不能转换为int?
我创建了一个发送单个数据报包的类,该数据包由另一个程序成功接收.
import java.net.*;
public class UDPServer {
public static void main(final String args[]) throws Exception {
final String sendID = "level1";
final int val = 2;
final DatagramSocket serverSocket = new DatagramSocket(7474);
byte[] sendData = new byte[1024];
final InetAddress IPAddress = InetAddress.getLocalHost();
final String sentence = sendID + new String(" ")
+ new Integer(val).toString();
final String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
final DatagramPacket sendPacket = new DatagramPacket(sendData,
sendData.length, IPAddress, 7470);
serverSocket.send(sendPacket);
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何从另一个代码运行此代码,为sendID和传递变量val.这最终将从游戏向音频编程软件发送信息,以创建算法分数.
如果代码错误/格式错误,请道歉,我不是交易程序员! …
我试图理解这种模式,行和列方程式如何,以便我可以做一个循环给我相同的图片.我不一定需要代码,只是模式的方式,我似乎无法理解它已经尝试编码它仍然我的结果是坏的...
当我的输入为1时,这就是结果

当我的输入为3时,这就是结果

当我的输入为15时,这就是结果

每次我尝试运行此代码currentCost返回为0.
我正在尝试使用具有来自用户的资产(此处为汽车)的价值和年龄的循环来计算折旧@ 20%.谢谢.
float cost = Integer.parseInt(jTextField2.getText());
int vehicalAge = Integer.parseInt(jTextField3.getText());
float currentCost = 0;
for (int a = 1; a == vehicalAge; a++) {
cost = (float) (cost - (cost * 0.2));
currentCost = cost;
}
JOptionPane.showMessageDialog(this, Float.toString(currentCost));
Run Code Online (Sandbox Code Playgroud)