编辑:如果用户单击“删除”以删除 ListView 中的项目,我会弹出一个警告框。它有效,但我希望它弹出原始阶段。它出现在我的第一台显示器上。有没有办法在显示时设置警报的位置?
请注意,“所有者”在不同的类中,我使用 Scenebuilder/FXML 创建了所有内容。我不知道如何让 initOwner() 工作。这是“主要”类:
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Assignment_5 extends Application {
public Stage primaryStage;
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("Assignment_5.fxml"));
primaryStage.setTitle("Plant Pack");
primaryStage.setScene(new Scene(root, 1200, 500));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)
这是 Controller 类中的工作代码。没有必要实现此警报的模式,但它会是一个很好的补充,使其更方便。我只是不知道如何将主 Window 从 Main 类传递给这个:
protected void handleDeleteButtonClick(ActionEvent event) {
Alert alertBox = new Alert(Alert.AlertType.CONFIRMATION, "Confirm Delete", ButtonType.OK, ButtonType.CANCEL);
alertBox.setContentText("Are you sure you …Run Code Online (Sandbox Code Playgroud) SimpleDateFormat 类的方法:
public void setLenient(boolean lenient)
Run Code Online (Sandbox Code Playgroud)
指定日期/时间解析是否宽松。通过宽松解析,解析器可以使用试探法来解释与此对象格式不精确匹配的输入。使用严格解析,输入必须与此对象的格式匹配。
或Calendar类的方法:
public void setLenient(boolean lenient)
Run Code Online (Sandbox Code Playgroud)
指定日期/时间解释是否宽松。对于宽松解释,诸如“February 942, 1996”之类的日期将被视为等同于 1996 年 2 月 1 日之后的第 941 天。对于严格(非宽松)解释,此类日期将导致抛出异常。默认是宽松的。
检查格式的一致性或滚动日期。
我想确认MM-DD-YYYY(02-31-2016)的日期是否应该返回无效,因为 2 月的 31 天不是一个真实的日期,所以 04-31-1980 也应该返回无效。
不想使用 Java 8 中的 Joda 时间 API,但是对此的任何建议将不胜感激。
这个问题与我不久前发布的另一个问题有关。
我已经找到了一种按照我想要的方式对数据进行分组的方法。但是因为我需要对对象进行分组/映射,所以当我需要应用一些过滤时,我已经在收集期间关闭了流。我有以下代码:
final Map<TeamDetails, List<Player>> teamDetailsPlayerListMap =
dbRows.stream().map(row -> mapDbRowToTeamPlayerPair(row))
.collect(Collectors.groupingBy(TeamPlayerPair::getKey,
Collectors.mapping(TeamPlayerPair::getValue, Collectors.toList())));
final List<Team> teams = teamDetailsPlayerListMap.entrySet().stream()
.map(teamPlayerList -> mapTeamPlayerListToTeam(teamPlayerList))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是某些 dbRowsString的playerName. 我不想在收集之前过滤,就好像 aTeam没有播放器一样(例如,只有 1 db 行,播放器名称为空字符串),我仍然希望Team在最后的s列表中包含它。它只会有一个空的玩家列表。
有什么方法可以在收集过程中应用过滤器,以便不会将空字符串或空字符串添加到列表中???
我已经能够使用自定义收集器实现它,如下所示,但我只是想知道是否有办法在没有自定义收集器的情况下做到这一点???
Function<Player, Boolean> emptyPlayerNameFilter = new Function<Player, Boolean>() {
@Override
public Boolean apply(Player player) {
return player != null && player.getName() != null && !"".equals(player.getName());
}
};
final Map<TeamDetails, List<Player>> teamDetailsPlayerListMap =
dbRows.stream().map(row -> mapDbRowToTeamPlayerPair(row))
.collect(Collectors.groupingBy(TeamPlayerPair::getKey,
Collectors.mapping(TeamPlayerPair::getValue,
MyCollectors.toFilteredLinkedList(emptyPlayerNameFilter))));
final List<Team> …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习Java 8 功能 Optional。我对 Optional.orElse 的工作方式感到困惑。这是我尝试过的:
public class OptionalsExample {
public static void main(String[] args) {
Name userName = new Name();
userName.setName("John Doe");
Optional<Name> optionalName = Optional.ofNullable(userName);
optionalName.ifPresent(
(Name value) -> {
Optional<String> optionalNameString = Optional.ofNullable(value.getName());
optionalNameString.ifPresent(name -> System.err.println("Name is: " + optionalNameString.get()));
}
);
}
private static void printError() {
System.err.println("No Name present");
}
}
Run Code Online (Sandbox Code Playgroud)
我担心的是,如果设置了 name 一切正常,但是当没有设置 name 时,我想执行orElse。我想在评论时做点什么
userName.setName("John Doe");
Run Code Online (Sandbox Code Playgroud)
喜欢打印 No Name Found
我怎样才能做到这一点?
TIA
无法使用 Java 1.8 在 JBoss 5.1 中编译 JSP 文件。能够编译常规 Java 文件,甚至可以完成没有 JSP 的 Spring 项目。
如果我们为那些 JSP 文件保留编译好的类文件,它就可以正常工作。
以下是我在尝试运行 JSP 文件时遇到的错误:
2016-07-15 14:56:00,758 ERROR [org.apache.jasper.compiler.Compiler] (http-0.0.0.0-80-31) Compilation error
org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>(ClassFileReader.java:369)
at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:206)
at org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:163)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:97)
at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)
at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:101)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:169)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2241)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:974)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1184)
at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:535)
at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:743)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:429)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:335)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:313)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:300)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at …Run Code Online (Sandbox Code Playgroud) 我已经在线检查了许多解决方案,但在解析“hh:mm a”时仍然出现异常。
在 JSP 中:
$('#t2').timepicker({
timeFormat : 'hh:mm a',
interval : 30,
maxTime : '11:00 pm',
startTime : '08:00 am',
dynamic : false,
dropdown : true,
scrollbar : true
});
...
<div class="form-group">
<label
class="col-md-3 control-label">Start
Time</label>
<div class="col-md-7">
<input type="text"
class="timepicker"
id="t1"
name="startTime"
readonly="readonly">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在 Java 中:
String startTime = request.getParameter("startTime");
DateTimeFormatter formatterTime1 = DateTimeFormatter.ofPattern("hh:mm a", Locale.US);
LocalDateTime localStartTime = LocalDateTime.parse(startTime, formatterTime1);
Run Code Online (Sandbox Code Playgroud)
例外:
java.time.format.DateTimeParseException: Text '08:00 am' could not be parsed at index 6
Run Code Online (Sandbox Code Playgroud)
即使我尝试硬编码:
String …Run Code Online (Sandbox Code Playgroud) 我必须获取数组的第一个元素。但该元素可能为空;如果元素为空,我将放置一个空字段(我正在尝试生成一个 pdf)
这是我现在的代码:
public void makePdf(Long id) throws IOException {
Candidacy ca = candidacyRepository.findOne(id);
cos.beginText();
cos.showText(
ca.getInterviews().stream().map(Interview::getAgency).map(Agency::getAgencyName).collect( Collectors.toList()).get(0)!=null?ca.getInterviews().stream().map(Interview::getAgency).map(Agency::getAgencyName).collect( Collectors.toList()).get(0):""));
cos.endText();
}
Run Code Online (Sandbox Code Playgroud)
所以我不想阻止pdf的生成。非常感谢您的支持!
更新
抱歉不够精确:我也按日期排序。
public void makePdf(Long id) throws IOException {
Candidacy ca = candidacyRepository.findOne(id);
cos.beginText();
cos.showText(
ca.getInterviews().stream().sorted((a,b)-> a.getInterviewDate().compareTo(b.getInterviewDate())).sorted((a,f)->f.getInterviewDate().compareTo(a.getInterviewDate())).sorted((b,f)->b.getInterviewDate().compareTo(f.getInterviewDate())).map(Interview::getAgency).map(Agency::getAgencyName).collect( Collectors.toList()).get(0)!=null?ca.getInterviews().stream().sorted((a,b)-> a.getInterviewDate().compareTo(b.getInterviewDate())).sorted((a,f)->f.getInterviewDate().compareTo(a.getInterviewDate())).sorted((b,f)->b.getInterviewDate().compareTo(f.getInterviewDate())).map(Interview::getAgency).map(Agency::getAgencyName).collect( Collectors.toList()).get(0):""));
cos.endText();
}
Run Code Online (Sandbox Code Playgroud)
我收到一个 NullPointerException:/ 谢谢你的帮助
首先,生成说明问题的 UI 的代码:
package test;
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.geometry.VPos;
import javafx.scene.Scene;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(final String[] args) throws Exception {
launch(args);
}
@Override
public void start(final Stage window) throws Exception {
// Create a VBox to hold the table and button
final GridPane root = new GridPane();
root.setHgap(5);
root.setVgap(5);
// Add a combo-box to the first row
final ComboBox<String> dropdown1 = new …Run Code Online (Sandbox Code Playgroud) 我有一个带有其他对象列表的对象,每个其他对象都有一个列表等。我需要在层次结构中找到层次结构中具有匹配某个值的属性的第一个(也是唯一的)最后一个元素。看到我现在的代码会更清楚:
@Override
public Poste findByNumeroAndMillesime(String numero, Millesime millesime) {
return millesime
.getDivisions()
.stream()
.filter(
division -> division
.getGroupes()
.stream()
.filter(
groupe -> groupe
.getClasses()
.stream()
.filter(
classe -> classe
.getSousClasses()
.stream()
.filter(
sousClasse -> sousClasse
.getPostes()
.stream()
.filter(poste -> numero.equals(poste.getNumero()))
.findFirst()
.get()
))));
}
Run Code Online (Sandbox Code Playgroud)
我需要返回与作为参数传递的数字相同的 Poste。
提前致谢。
我有这个要求迭代结果集中返回的数百万条记录并处理它们并将它们存储在某些数据结构中。我找不到任何相关的例子或参考。JOOQ 似乎在做一些我可能想要的事情,但它似乎不是免费的。我希望如果使用 java 8 流我可能能够实现它,但不是 example 或 writeup 似乎给了我任何前进的方向。我也对其他选择持开放态度。
基于这个 SO 参考:resultset parallel我在下面尝试过,但它没有给我任何性能改进,如下面的性能指标所示。
代码:顺序迭代:
while(rs.next()) {
System.out.println(rs.getString(1));
}
Run Code Online (Sandbox Code Playgroud)
使用流和拆分器:
Stream<String> s = StreamSupport.stream(new Spliterators.AbstractSpliterator<String>(Long.MAX_VALUE,
Spliterator.ORDERED) {
@Override
public boolean tryAdvance(Consumer<? super String> action) {
try {
if (!rs.next())
return false;
action.accept(rs.getString(1));
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
}, true);
s.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
记录总数:3759
Sequential 花费的时间:~83.8 secs
Streams 花费的时间:~83.5 secs
任何人都可以查看并告诉我我是否没有正确实现流。