我想添加一种listener我JavaFX's TextField的用户,当用户更改其值时TextField,应用程序会在控制台上打印一些内容.
我搜索过,我发现了以下非常相似的问题:JTextField的值更改侦听器
提到的问题的答案是非常明确和有效的,但不幸的是它只对JTextField(Not JavaFX's TextField)有用,因为它说你应该像这样使用DocumentListener:
// Listen for changes in the text
textField.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
warn();
}
public void removeUpdate(DocumentEvent e) {
warn();
}
public void insertUpdate(DocumentEvent e) {
warn();
}
Run Code Online (Sandbox Code Playgroud)
但是在JavaFX的TextFields中你无法做到这一点.所以?解决办法是什么?
(用代码描述可能非常好,但如果不可能,任何提示将不胜感激)
在Java中,我正在寻找一个接受任何波斯语(或阿拉伯语)字母的正则表达式,除了任何波斯语(或阿拉伯语)数字.为了只有字母,我发现了一个非常好的正则表达式:
[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]
虽然它是真的并且对我有用,但我们知道我们可以使用\\p{L}+正则表达式接受来自世界上所有语言的所有字母,在我的情况下(阿拉伯语 - 波斯语)我可以修改它并使用[\\p{InArabic}]+$.
但是,通过使用[\\p{InArabic}]+$不仅所有阿拉伯(波斯语)字母都将被接受,而且阿拉伯数字也是可接受的,如1 2.
所以我的问题是如何修改[\\p{InArabic}]+$为接受字母而不是数字,或者换句话说我如何限制[\\p{InArabic}]+$不接受任何数字?
请注意,波斯语(阿拉伯语)的数字如下:1 2 3 4 5 6 7 8 9 0
我有这个未修饰的窗口:
public static void initStartPage(final Stage primaryStage) {
final Stage startPage = new Stage();
startPage.initStyle(StageStyle.UNDECORATED);
//startPage.initOwner(primaryStage);
//startPage.toFront();
Scene scene = new Scene(agentsPanel(), 900, 500);
startPage.setScene(scene);
startPage.show();
}
Run Code Online (Sandbox Code Playgroud)
我很感兴趣如何让它拖动可拖动?我希望我将鼠标光标放在它上面以拖动它来改变它的位置.
PS
我测试了这个解决方案,但它不起作用:
private static FlowPane flow;
private static BorderPane bpi;
public static void initStartPage(final Stage primaryStage) {
final Stage startPage = new Stage();
startPage.initStyle(StageStyle.UNDECORATED);
startPage.initOwner(primaryStage);
//startPage.toFront();
Scene scene = new Scene(agentsPanel(primaryStage), 900, 500);
startPage.setScene(scene);
startPage.show();
}
private static double xOffset = 0;
private static double yOffset = 0;
public static BorderPane agentsPanel(final …Run Code Online (Sandbox Code Playgroud) 我已经阅读了一些关于Java程序设计语言中的Strings和StringBuilders的好处和缺点的文章.在其中一篇文章中,作者写道:String.
现在我无法理解它的含义.能否请你告诉我的差异StringBuilder,StringBuffer以及String特别是在"线程安全"的情况下.(用代码描述可能非常好,但如果不可能,任何提示将不胜感激).
我在将(“?”或“?”)等波斯字符保存到 oracle 数据库时遇到问题。我从客户端收到正确的编码,但是当我将相关记录插入数据库时,它将以这样的阿拉伯语编码保存(“?”)。
我的应用程序的规格是:
我将以下属性设置到 WebLogic 设置文件中,但它不起作用。
export NLS_LANG=AMERICAN_AMERICA.AR8MSWIN1256
export NLS_LANG=AMERICAN_AMERICA.UTF8
-Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud) Button我的FXML文件中有一个,我在下面给它一个样式CSS
.button {
-fx-background-color: linear-gradient(#ff5400, #be1d00);
-fx-background-radius: 30;
-fx-background-insets: 0;
-fx-text-fill: white;
}
Run Code Online (Sandbox Code Playgroud)

你可以看到按钮有一个新的很棒的风格,但每当我点击它,它仍然像以前一样,你无法理解是否点击了...
当我搜索时,我在这个链接中找到了一个解决方案:按下CSS,但是如果你注意到它是Web浏览器和JavaFX使用的CSS不支持它.
那么解决方案是什么?我希望我的按钮在用户点击或点击时更改其外观.
我Spring Data JPA在服务层使用了一个delete方法,但是不知道为什么这个deleteById方法和delete方法都没有返回值。
如果我们仔细检查 delete 方法的实现,有一个if 语句,当要删除的实体不存在时,它不返回任何内容。
public void delete(T entity) {
Assert.notNull(entity, "Entity must not be null!");
if (entityInformation.isNew(entity)) {
return;
}
Class<?> type = ProxyUtils.getUserClass(entity);
T existing = (T) em.find(type, entityInformation.getId(entity));
// if the entity to be deleted doesn't exist, delete is a NOOP
if (existing == null) {
return;
}
em.remove(em.contains(entity) ? entity : em.merge(entity));
}
Run Code Online (Sandbox Code Playgroud)
就我个人而言,我认为Boolean在这种情况下返回一个值可能是一种合适的方法,因为控制器层将知道删除状态,并且可以为视图层提供更可靠的警报消息。
我在 SQL-Server 中的阿拉伯语全文搜索中遇到问题,此链接说我们可以在全文搜索中使用阿拉伯语。
为了进行更多描述,我在包含阿拉伯语和英语文本的专栏之一上启用了全文搜索。
当我对英文输入使用全文搜索时,一切正常,但在阿拉伯语中则不然。
请注意,我还使用其他只有阿拉伯语内容的表测试了我的查询,但我还是一无所获。
使用的查询是这样的:
select * from tbl where freetext(title, '"*???*"')
SELECT *
FROM sys.dm_fts_parser('"??????????? ?????? ??????? ?? ???? ?????"', 1025, 0, 0)
WHERE special_term <> 'Noise Word' AND display_term IS NOT NULL
我试图做两个按钮JFrame,我调用setBounds它们的方法来设置它们的位置和大小,我也传递null给setLayout1 because I want to use组件的setBounds`方法.
现在我想用我的代码做一些事情,每当我调整框架按钮时,装饰将以适当的形式改变,如下面的图片:

我知道可以使用从JPanel类中创建一个对象并向其添加按钮,最后将创建的面板对象添加到框架中,但由于某种原因(由教授指定),我现在不允许这样做.
有什么办法或者你有什么建议吗?
我的代码是这样的:
public class Responsive
{
public static void main(String[] args)
{
JFrame jFrame = new JFrame("Responsive JFrame");
jFrame.setLayout(null);
jFrame.setBounds(0,0,400,300);
JButton jButton1 = new JButton("button 1");
JButton jButton2 = new JButton("button 2");
jButton1.setBounds(50,50,100,100);
jButton2.setBounds(150,50,100,100);
jFrame.add(jButton1);
jFrame.add(jButton2);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个ListView,由一个String数组膨胀.在ListView的顶部,我添加了一个按钮,我希望每当用户点击按钮时,4项的颜色会自动更改.
这是我的活动代码:
public class MainActivity extends Activity
{
String[] countryNames = {"Germany", "France", "Italy", "Spain", "Russia", "USA", "Iran", "China", "Inida"};
Button button;
ListView listView;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.listview);
button = (Button) findViewById(R.id.button_changeColor);
ListViewAdapter adapter = new ListViewAdapter(getApplicationContext());//
listView = (ListView) findViewById(R.id.listView_1);//
listView.setAdapter(adapter);//
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// here i want to change the the color 4th item.
}
});
}
private …Run Code Online (Sandbox Code Playgroud) 我试图插入我的数据库的一个表,但这个过程需要几分钟.
我希望在我的应用程序尝试插入时有一个不确定的进度条.为了有进度条,我想使用JavaFX,但我不知道如何实现它,直到插入数据库进程结束才显示它.
我想阅读并打印文本文件到控制台,所以我用下面的代码做了这个
File file = new File("G:\\text.txt");
FileReader fileReader = new FileReader(file);
int ascii = fileReader.read();
while (ascii != -1)
{
result = result + (char) ascii;
ascii = fileReader.read();
}
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)
虽然我得到了正确的结果,但在某些情况下我会得到一些奇怪的结果.假设我的文本文件中包含此文本:
Hello to every one
Run Code Online (Sandbox Code Playgroud)
为了得到一个文本文件我用过记事本,当我改变编码模式时,我的代码会得到奇怪的输出.
安西:大家好
Unicode:ÿþhellotoeveryone
Unicode大端:þÿhellotoeveryone
UTF-8:你好
为什么我会得到这些奇怪的输出?我的代码有问题吗?或者还有其他原因