小编Bas*_*tor的帖子

JavaFX:如何使enter键提交TextArea

对不起,如果这看起来有点太容易了,我是JavaFX的新手,这是我用它构建的第一个小应用程序.

我正在尝试制作一个简单的聊天客户端.我正在使用JavaFX场景构建器来创建客户端UI,以及连接到FXML的控制器类.

我怎样才能将文本区域中的当前文本提交给服务器,并在按下回车键时清除文本区域,而不是使用某种"发送"按钮?

编辑:这是不起作用的代码:

//...

public class FXMLDocumentController
{

//...

@FXML private TextArea messageBox;

//...

messageBox.setOnKeyPressed(new EventHandler<KeyEvent>() 
{
    @Override
    public void handle(KeyEvent keyEvent) 
    {
        if(keyEvent.getCode() == KeyCode.ENTER)
        {
            //sendMessage();
        }
    }
});

//...
Run Code Online (Sandbox Code Playgroud)

java chat javafx

9
推荐指数
2
解决办法
3万
查看次数

使用TextPointers选择时,请勿突出显示换行符

所以,我有一个RichTextBox(如下所示)有一个等宽字体,并且每行必须有相同数量的字符.执行此操作需要在提供框的字符串中的\n每个字符后插入换行符x.

我还有一个算法,允许光标按下箭头键移动,在移动时选择单个字符.当光标覆盖框中的单词时,它应突出显示整个单词.

问题:当一个单词跨越多行时,第一行的最后一个字符后面有一个空格,我认为这是由\n字符引起的.

如何才能RichTextBox.Selection.Select()突出显示这些空格?我可以在解析等时剥离角色的选择,但我需要能够不突出显示这个空白区域.

编辑:一个可接受的替代方案是使换行符不成功.在某种程度上,以某种方式修复RichTextBox它,使其在每一行总是有12个字符,但这并不理想,因为我想保持调整窗口的大小.

更新:似乎减少XAML中文本列的宽度已经减少了超过边缘的高亮显示的大小,但还没有完全消除它.我不能再减小宽度而不会导致文本换行.

问题的例子

c# wpf newline highlight richtextbox

8
推荐指数
1
解决办法
290
查看次数

Spring数据JPA:如何启用级联删除而不引用父级中的子级?

也许这是一个过于简单的问题,但是当我尝试删除用户实体时,我遇到了异常.

用户实体:

@Entity
@Table(name = "users")
public class User 
{
    @Transient
    private static final int SALT_LENGTH = 32;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;

    @NotNull
    private String firstName;

    @NotNull
    private String lastName;

    @Column(unique = true, length = 254)
    @NotNull
    private String email;

    // BCrypt outputs 60 character results.
    @Column(length = 60)
    private String hashedPassword;

    @NotNull
    private String salt;

    private boolean enabled;

    @CreationTimestamp
    @Temporal(TemporalType.TIMESTAMP)
    @Column(updatable = false)
    private Date createdDate;
Run Code Online (Sandbox Code Playgroud)

我有一个实体类,它引用具有外键的用户.我想要发生的是,当用户被删除时,任何PasswordResetToken引用该用户的对象也将被删除.我怎样才能做到这一点?

@Entity
@Table(name = "password_reset_tokens")
public class PasswordResetToken …
Run Code Online (Sandbox Code Playgroud)

java mysql jpa spring-data-jpa spring-boot

6
推荐指数
2
解决办法
9502
查看次数

如何在 Android 中实际使用 Material Design 工具生成的调色板?

我最近使用了https://material.io/tools/color/上的材料调色板生成器来生成调色板。

如您所见,该工具是 Material.io 上的官方工具。它生成了几种颜色 - 主要颜色和次要颜色,包括每种颜色的两种变体。这导致我在我的colors.xml文件中创建了这样的东西。

<!-- Color palette -->
<!-- ... -->

<!-- Colors by usage -->
<color name="colorPrimary">@color/black</color>
<color name="colorPrimaryDark">@color/blackDark</color>
<color name="colorPrimaryLight">@color/gray</color>
<color name="colorSecondary">@color/red</color>
<color name="colorSecondaryDark">@color/maroon</color>
<color name="colorSecondaryLight">@color/redLight</color>
<color name="colorTextOnPrimary">@color/white</color>
<color name="colorTextOnSecondary">@color/white</color>
Run Code Online (Sandbox Code Playgroud)

但是,如何在我的主题中应用这些颜色?Android 支持材料 (AppCompat) 主题只需要/允许三种颜色 - 主要、次要和重音。我应该使用另一个主题来应用这些属性吗?或者我只是在这里做错了什么?

我想避免在这里创建一个全新的主题,并且必须为我可能想要使用的每个组件手动设置颜色。

android android-theme android-styles material-design android-palette

6
推荐指数
1
解决办法
977
查看次数

线程"main"中的异常java.lang.UnsatisfiedLinkError:org.lwjgl.DefaultSysImplementation.getPointerSize()I

起初这看起来像9个其他问题的副本,但我的实际上是独一无二的.并没有多少答案修复它.使用JLWGL.

Exception in thread "main" java.lang.UnsatisfiedLinkError:     org.lwjgl.DefaultSysImplementation.getPointerSize()I
    at org.lwjgl.DefaultSysImplementation.getPointerSize(Native Method)
    at org.lwjgl.Sys.<clinit>(Sys.java:113)
    at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
    at renderEngine.DisplayManager.createDisplay(DisplayManager.java:30)
    at engineTester.MainGameLoop.main(MainGameLoop.java:11)
Run Code Online (Sandbox Code Playgroud)

没有任何谷歌搜索显示原因.我已经按照几个教程来写了这封信.本机文件夹已正确设置.是的,我仍然得到这个错误!太令人沮丧!

java linker exception unsatisfiedlinkerror

5
推荐指数
1
解决办法
4785
查看次数

软键盘覆盖底部对话框

我在SO上搜索了所有相关问题,基本上尝试了所有解决方案,却一无所获。我想使用一个简单的底部模态对话框,其中包含一些EditText其他组件BottomSheetDialogFragment

我遇到的问题是软键盘覆盖了一半的对话框。我更改的任何设置似乎都没有任何不同。API有什么变化吗?似乎没有什么搜狗搜索可以找到解决方案。当前发生的情况:键盘不覆盖当前选定的编辑文本,但覆盖下面的对话框。我希望整个对话框始终可见,并在键盘打开时移动它。

这是我的Fragment类:

public class GoalUpdateFormDialogFragment extends BottomSheetDialogFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.goal_update_form, container, false);

        assert getDialog().getWindow() != null;

        getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
        getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

        return view;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的对话框布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/goal_update_bottom_sheet"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_margin="5dp"
    xmlns:android="http://schemas.android.com/apk/res/android"
    app:layout_behavior="@string/bottom_sheet_behavior"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_margin="5dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/progress_update_hint"/>

        <EditText
            android:id="@+id/goal_progress_number_picker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="@string/goal_progress_box_hint"
            android:inputType="number"/>

    </LinearLayout>

    <EditText …
Run Code Online (Sandbox Code Playgroud)

java android android-layout

5
推荐指数
1
解决办法
1941
查看次数

Xcode 在控制台中显示构建输出

所以也许这是一个愚蠢的问题,但我一生都无法弄清楚如何让 iPhone 应用程序的逐个构建输出出现在某种控制台中。

我需要验证某个构建步骤是否正在发生,因此我需要从构建中获取逐行输出。在Android中,这是一个微不足道的任务,但在Xcode中似乎并不那么容易。

我的意思是我想要一个看起来大致像这样的输出,而不必观看屏幕顶部中心的小盒子:

Starting build...
Fooing bar...
Reticulating splines...
Compiling source code...
Linking...
Uploading debug symbols...
Transferring $50k to bank account...
Build SUCCESS after 2m 30s
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

macos xcode ios

4
推荐指数
1
解决办法
2608
查看次数

如何模拟 Android `Tasks.await()`?

因此,我正在编写一个方法来对与 Firebase 身份验证的交互进行单元测试 - 我已成功模拟了所需的所有其他内容,但我不确定如何模拟被测方法中的调用Tasks.await(someTask).someValue

因为Tasks.await()是静态的,所以我不能真正嘲笑它。

我可以模拟任务本身,但不能模拟对await 方法的调用。有什么方法可以让我Tasks.await()认为该任务是真实的,以便它正常运行吗?

我在这里可以做些什么吗?

android unit-testing task mockito kotlin

3
推荐指数
1
解决办法
2032
查看次数

无法在IntelliJ IDEA中运行Java 9项目

我不确定我在这里做错了什么,我开始研究java 10项目(当然使用java 9的新模块系统),所以我怀疑它与此有关.

我有以下项目目录结构:

在此输入图像描述

但是,IntelliJ中的运行按钮显示为灰色,看起来intellij不认为这是一个结构合理的Java项目.

我仔细阅读了文档,但其中很多是循环解释,导致更多的混乱而非清晰度.

我看到.idea目录有一个modules子目录,看起来它包含一些相关的东西 - 我可能在这里做错了,但我不知道是什么.

这是我的build.gradle文件,因为我怀疑这在这里​​很重要:

plugins {
    id 'java'
    id 'application'
    id 'idea'
}

group 'com.chrismailloux'
version '0.1'
description = "Tutorial application developed to learn LWJGL and OpenGL."

sourceCompatibility = 1.8

task wrapper(type: Wrapper) {
    gradleVersion = '4.9'
}

repositories {
    mavenCentral()
}

dependencies {
    // Dependencies left out for brevity
}
Run Code Online (Sandbox Code Playgroud)

有人能把我直接放在这里吗?我该如何解决这个问题才能运行项目?

java intellij-idea gradle java-9 java-module

2
推荐指数
1
解决办法
137
查看次数

这个C++函数与等效的java函数的工作方式有何不同?

我正在尝试实现以下C++算法的Java版本:

void constructPrintLIS(int arr[], int n)
{
    std::vector< std::vector<int> > L(n);

    L[0].push_back(arr[0]);

    for (int i = 1; i < n; i++)
    {
        for (int j = 0; j < i; j++)
        {
            if ((arr[i] > arr[j]) &&
                (L[i].size() < L[j].size() + 1))
            {
                L[i] = L[j];
                cout << true << endl;
            }
            else
            {
                cout << false << endl;
            }
        }

        L[i].push_back(arr[i]);
    }

    std::vector<int> max = L[0];

    for (std::vector<int> x : L)
    {
        if (x.size() > max.size())
        {
            max = …
Run Code Online (Sandbox Code Playgroud)

c++ java algorithm dynamic-programming

1
推荐指数
1
解决办法
98
查看次数