Я пишу программу, требующую кнопки, чтобы получить местоположение файла (путь к файлу). Теперь, после выбора файла, я хочу передать значение в строку, к которой я могу обратиться позже в приведенном ниже коде. Не могли бы вы рассказать мне, как это сделать?Как передать значение кнопки в строку, чтобы использовать ее позже в java?
Вот кнопка
Label labelWatermark = new Label();
final String wmark = new String();
Button btnWmark = new Button("Watermark?");
btnWmark.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
FileChooser wmarkFile = new FileChooser();
fileWmark = wmarkFile.showOpenDialog(primaryStage);
String filePathWmark = fileWmark.getAbsolutePath();
labelWatermark.setText(filePathWmark);
final String wmark = new String(filePathWmark);
}
});
HBox hbBtnBrowse3 = new HBox(10);
hbBtnBrowse3.setAlignment(Pos.CENTER);
hbBtnBrowse3.getChildren().addAll(btnWmark, labelWatermark);
grid.add(hbBtnBrowse3, 1, 5);
Я хочу, чтобы получить строку wmark
быть путь_к_файлом, которые я могу использовать в этой части ниже, в частности, строка, содержащая Image watermark_image = Image.getInstance(wmark)
:
try{
while ((line = br.readLine()) != null) {
try {
String a = line;
PdfReader Post_Survey = new PdfReader(pdf);
int number_of_pages = Post_Survey.getNumberOfPages();
PdfStamper stamp = new PdfStamper(Post_Survey, new
FileOutputStream("sample - " + line + ".pdf"));
int i = 0;
Image watermark_image = Image.getInstance(wmark);
BaseFont bf = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.WINANSI,
BaseFont.EMBEDDED);
watermark_image.setAbsolutePosition(20, 40);
PdfContentByte add_watermark;
PdfContentByte add_text;
//start stamping!!
while (i < number_of_pages) {
i++;
// watermark image
add_watermark = stamp.getOverContent(i);
add_watermark.addImage(watermark_image);
// set where lines are
add_text = stamp.getOverContent(i);
add_text.setFontAndSize(bf, 12);
ColumnText.showTextAligned(add_text,Element.ALIGN_LEFT, new Phrase("This is the properties of blah blah and is solely used for " + line + " only!"), 20, 20, 0);
}
stamp.close();
Post_Survey.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}catch (Exception e) {
e.printStackTrace();
}
Я думаю, потому что строка wmark
заключена в пределах кнопки btnWmark
, поэтому я не могу передать строку wmark. Так или иначе, мы можем ссылаться на него для последующего использования?
Отлично! Это действительно решило мою проблему. : D. Большое спасибо!!! – Zestos
Однако, я думаю, мы должны прокомментировать строку 'final String wmark = new String();' вы не думаете? – Zestos
Ну, мой плохой, просто удалите эту линию. – ItachiUchiha