我有一个数据类型为Integer的表列.我想使这个列可编辑,而无需在任何地方将数据类型更改为String.我使用了textfieldtablecell但它只在按下回车时提交了值.所以我想要一些其他的方法.请提出建议.为了做到[可能我做过这样的事情.但我的细胞不会变得可编辑.
public class EditCell implements initializable{
@FXML
private TableView<ResourceMaster> roletable;
@FXML
private TableColumn<ResourceMaster, Integer> loadedHrs;
@Override
public void initialize(URL location, ResourceBundle resources) {
Callback<TableColumn<ResourceMaster,Integer>, TableCell<ResourceMaster,Integer>> txtCellFactory =
(TableColumn<ResourceMaster,Integer> p) -> {return new EditingCell();};
loadedHrs.setCellFactory(txtCellFactory);
}
public class EditingCell extends TableCell<ResourceMaster, Integer> {
private TextField textField;
@Override
public void startEdit() {
if (!isEmpty()) {
super.startEdit();
if (textField == null) {
createTextField();
}
// setText(null);
commitEdit(Integer.valueOf((textField.getText())));
setGraphic(textField);
setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
textField.requestFocus();
}
}
@Override
public void cancelEdit() {
super.cancelEdit();
setText(String.valueOf(getItem()));
setContentDisplay(ContentDisplay.TEXT_ONLY);
}
@Override
public …Run Code Online (Sandbox Code Playgroud) 我有要求我必须找到否.特定单词出现在文件中的次数.例如.
String str = "Hi hello how are you. hell and heaven. hell, gjh, hello,sdnc ";
Run Code Online (Sandbox Code Playgroud)
现在在这个字符串中,我想要数不.有时"地狱"这个词出现了.伯爵应该包括"地狱","地狱",所有这些词语,但不是"你好".所以根据给定的字符串,我希望计数为2.
我使用了以下方法
第一名:
int match = StringUtils.countMatches(str, "hell");
Run Code Online (Sandbox Code Playgroud)
StringUtils是org.apache.commons.lang3库
第二:
int count = 0;
Pattern p = Pattern.compile("hell");
Matcher m = p.matcher(str);
while (m.find()) {
count++;
}
Run Code Online (Sandbox Code Playgroud)
第3
int count =0;
String[] s = str.split(" ");
for(String word: s)
if(word.equals("hell")
count++;
Run Code Online (Sandbox Code Playgroud)
前两种方法给出4作为答案,第3种方法给出1作为答案.
无论如何,请建议我可以获得2作为答案并满足我的要求.
我DirectoryScanner.jar在Windows 7中创建了一个jar文件.我想在unix服务器上执行这个jar.我在putty中运行了以下命令,jar按预期运行完全正常:
java -jar DirectoryScanner.jar
Run Code Online (Sandbox Code Playgroud)
现在我想在unix服务器上创建一个.sh文件,在执行时可以运行这个jar.我创建了一个文件Report.sh,在其中我编写了以下代码来执行这个jar:
java -cp /home/applvis/Java/UAT/lib/DirectoryScanner.jar com.acc.directory.scanner.SDScanner
Run Code Online (Sandbox Code Playgroud)
但是当我在putty中执行此命令时,它显示以下错误:
[applvis@bg6lnxebs1 UAT]$ . ./ReportGen.sh
Exception in thread "Main Thread" java.lang.NoClassDefFoundError: com/acc/directory/scanner/SDScanner
Caused by: java.lang.ClassNotFoundException: com.acc.directory.scanner.SDScanner
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.acc.directory.scanner.SDScanner. Program will exit.
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我究竟我做错了什么,或者建议一些替代命令.
我的jar和sh文件都在不同的目录中.即使它们在同一目录中,我也会收到此错误.
PS.我有很多jar文件要一个接一个地执行.因此,我不想一次又一次地编写命令来在unix上分别运行每个jar,我想创建一个sh文件,它将包含一个接一个地运行所有jar的代码.我只需运行sh文件就更容易了.因此我需要将代码写入sh文件中,该文件可以运行我的jar.
我的unix服务器中有sql文件.我想使用java程序在unix中运行该文件.我在网上看到很多方法,我尝试过使用org.springframework.jdbc.datasource.init.ScriptUtils
代码如下
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
String URL = configBean.getUrl();
String USER = configBean.getUser();
String PASS = configBean.getPassword();
System.out.println(URL + " ,"+USER+" ,"+PASS);
Connection conn = DriverManager.getConnection(URL,USER,PASS);
System.out.println(configBean.getSqlFilePath());
ScriptUtils.executeSqlScript(conn, new ClassPathResource(configBean.getSqlFilePath()));
Run Code Online (Sandbox Code Playgroud)
问题是此方法无法检测到unix服务器中的文件.我在配置文件中有路径.从那里我正在阅读路径,我的路径是"/home/applvis/JAVA/UAT/config/ABC.sql".当我执行包含此代码的jar时,它会显示在此位置找不到的文件.它删除文件路径中存在的第一个斜杠.如果我放两个斜杠,那么它也无法检测到该文件.我得到的错误是
INFO: Executing SQL script from class path resource [/home/applvis/JAVA/UAT/config/ALLOT010T_OBJNAMES.sql]
Exception in thread "Main Thread" org.springframework.jdbc.datasource.init.CannotReadScriptException: Cannot read SQL script from class path resource [/home/applvis/JAVA/UAT/config/ALLOT010T_OBJNAMES.sql]; nested exception is java.io.FileNotFoundException: class path resource [/home/applvis/JAVA/UAT/config/ALLOT010T_OBJNAMES.sql] cannot be opened …Run Code Online (Sandbox Code Playgroud) 我想更改内容的颜色和字体大小,javafx.scene.text.Text但似乎找不到正确的CSS。我使用了以下内容,但没有明显的变化。
.text {
-fx-font-smoothing-type: lcd;
-fx-fill: white;
-fx-font-size: 11pt;
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何更改javafx.scene.text.Text使用CSS 的颜色和大小 ?
java程序或jar的运行时版本和编译时版本两者中的哪一个应该大于或等于另一个?编辑:JRE 系统库的版本应该是什么?
我最初的 fxml(比如说home.fxml)有很多功能,因此需要很多时间才能完全加载。因此,为了避免程序启动和 fxml 加载之间的时间间隔,我引入了另一个loader.fxml带有 gif 图像的 fxml(例如 ),该图像应在主 fxml 加载时出现。问题是我的 loader.fxml 中的 gif 图像没有移动,因为程序挂起,直到 home.fxml 完全加载。为了避免这种情况,我将 home.fxml 加载移动到线程中,如下面的代码所示。
public class UATReportGeneration extends Application {
private static Stage mainStage;
@Override
public void start(Stage stage) {
Parent loaderRoot = null;
try {
loaderRoot = FXMLLoader.load(getClass().getResource("/uatreportgeneration/fxml/Loader.fxml"));
} catch (IOException ex) {
Logger.getLogger(UATReportGeneration.class.getName()).log(Level.SEVERE, null, ex);
}
Scene loadScene = new Scene(loaderRoot);
stage.setScene(loadScene);
stage.initStyle(StageStyle.UNDECORATED);
stage.getIcons().add(new Image(this.getClass().getResourceAsStream("/uatreportgeneration/Images/logo.png")));
stage.show();
mainStage = new Stage(StageStyle.UNDECORATED);
mainStage.setTitle("Upgrade Analysis");
mainStage.getIcons().add(new Image(this.getClass().getResourceAsStream("/uatreportgeneration/Images/logo.png")));
setStage(mainStage);
new Thread(() -> {
Platform.runLater(() …Run Code Online (Sandbox Code Playgroud)