我正在尝试编写错误对话框,我希望它能够调用正确的系统指定声音.有没有办法从Java访问系统声音(即启动声音,默认蜂鸣声,星号,关键停止等)?
注意:我知道java.awt.Toolkit.getDefaultToolkit().beep();
更具体地说,为什么我的JavaFX控件没有居中?这是两个截图,第一个刚开始之后(我将窗口移动到一个更明显的位置,但还没有调整大小),第二个是在调整它以显示我的问题之后.如果你帮我确认它的大小(在所有DPI上),当它第一次显示时,奖励积分:

方便地,相关代码包含在那些屏幕截图中.如果您仍然需要它作为文本,请转到:
private void initJFXPanel(JFXPanel holder)
{
{
{
rootGrid = new GridPane();
rootGrid.setAlignment(Pos.CENTER);
rootGrid.setPadding(new Insets(16));
rootGrid.setHgap(16);
rootGrid.setVgap(8);
}
interior = holder.getScene();
if (interior == null)
holder.setScene(interior = new Scene(rootGrid));
interior.setRoot(rootGrid);
}
{
statusLabel = new Label("Checking for Updates...");
statusLabel.setAlignment(Pos.CENTER);
statusLabel.setTextAlignment(TextAlignment.CENTER);
rootGrid.add(statusLabel, 0, 0);
}
{
progressBar = new ProgressBar();
progressBar.setProgress(-1);
progressBar.setPrefWidth(Constants.MAX_WIN_BOUNDS.width / 5d); // 1/5 the width of the screen
rootGrid.add(progressBar, 0, 1);
}
{
downloadButton = new Button("Get it!");
downloadButton.setAlignment(Pos.CENTER);
rootGrid.add(downloadButton, 0, 2);
}
holder.setMinimumSize(new Dimension((int)(rootGrid.getPrefWidth() + .5), …Run Code Online (Sandbox Code Playgroud) 我发现自己检查了这一点,并询问是否有必要.我有这样的代码:
public Object myMethod(Object... many) {
if (many == null || many.length == 0)
return this;
for (Object one : many)
doSomethingWith(one);
return that;
}
Run Code Online (Sandbox Code Playgroud)
但后来我想知道......我是否过于谨慎?我需要检查一下many == null吗?在任何当前的Java版本中都有可能吗?如果是这样,怎么样?如果没有,我可能会继续检查,只是为了防止以后Oracle确定它有一天可以为空.
我正在制作一个基本的文件浏览器,并想知道如何获取默认的根目录.我知道这java.io.File.listRoots()给了所有的根源(对我而言A:\, C:\, D:\, E:\, F:\, G:\, H:\, I:\, L:\ T:\, U:\, X:\, Y:\, Z:\),但我想要用户主要使用的那个(即带有操作系统的那个),所以我知道从哪里开始浏览.
我需要能够重复使用java.io.InputStream多次,并且我认为以下代码可以工作,但它只能在第一次使用.
public class Clazz
{
private java.io.InputStream dbInputStream, firstDBInputStream;
private ArrayTable db;
public Clazz(java.io.InputStream defDB)
{
this.firstDBInputStream = defDB;
this.dbInputStream = defDB;
if (db == null)
throw new java.io.FileNotFoundException("Could not find the database at " + db);
if (dbInputStream.markSupported())
dbInputStream.mark(Integer.MAX_VALUE);
loadDatabaseToArrayTable();
}
public final void loadDatabaseToArrayTable() throws java.io.IOException
{
this.dbInputStream = firstDBInputStream;
if (dbInputStream.markSupported())
dbInputStream.reset();
java.util.Scanner fileScanner = new java.util.Scanner(dbInputStream);
String CSV = "";
for (int i = 0; fileScanner.hasNextLine(); i++)
CSV += fileScanner.nextLine() + "\n";
db …Run Code Online (Sandbox Code Playgroud) 说我有给定的表:
+------+------+------+
| Col1 | Col2 | Col3 |
+------+------+------+------+
| Row1 | D1.1 | D1.2 | D1.3 |
+------+------+------+------+
| Row2 | D2.1 | D2.2 | D2.3 |
+------+------+------+------+
| Row3 | D3.1 | D3.2 | D3.3 |
+------+------+------+------+
Run Code Online (Sandbox Code Playgroud)
我想在HTML5中代表它.棘手的是,像这样的表必须在语义上很重要,但左上角的单元格在语义上并不重要,而是使用间隔符来排列更重要的列标题.最好的方法是什么?我的第一个想法就是这样做:
<table>
<thead>
<tr>
<th></th>
<th>Col1</th>
<th>Col2</th>
<th>Col3</th>
</tr>
</thead>
<tbody>
<tr>
<th>Row1</th>
<td>D1.1</td>
<td>D1.2</td>
<td>D1.3</td>
</tr>
<tr>
<th>Row2</th>
<td>D2.1</td>
<td>D2.2</td>
<td>D2.3</td>
</tr>
<tr>
<th>Row3</th>
<td>D3.1</td>
<td>D3.2</td>
<td>D3.3</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
但是,放在<th></th>那里感觉错了,就像<p> </p>用于间距一样.有一个更好的方法吗?
材料设计非常强调"纸张"的隐喻.要做到这些,阴影是必不可少的.由于Material设计是一种哲学而不是API(尽管它被构建到L中),因此应该在任何地方(Windows窗体,HTML/CSS等)进行.我如何在Android API 14到20中执行此操作?
请注意,对于圆形和其他非方形形状,预制PNG实际上并不实用.
我正在尝试让我的程序%APPDATA%在用户使用Windows时设置的位置保存其状态.但是,System.getProperty("temp.dir");不回归.为了保存状态,如何%APPDATA%在Windows中获取变量的值?
是否可以将Sketch文件转换为SVG而无需实际使用Sketch或DrawIt?我知道它在理论上是可行的,因为它们都是矢量,但我使用Windows和Linux,所以我没有Mac打开文件.
java ×6
android ×1
appdata ×1
browser ×1
dropshadow ×1
file ×1
html ×1
html-table ×1
html5 ×1
inputstream ×1
io ×1
javafx ×1
jquery ×1
null-check ×1
shadow ×1
sketch-3 ×1
ui-design ×1
variables ×1
windows ×1