java更改reader字体颜色,java - JavaFX在禁用的TextArea中更改字体颜色 - 堆栈内存溢出...

我尝试编程一个客户端 - 服务器聊天,在我的客户端,我得到了一个TextArea用于所有消息。 TextArea已禁用,因此我想知道如何让它看起来“正常”。

我找到了解决方案,如下所示:

.text-input > .scroll-pane:disabled

{

-fx-opacity: 1;

}

但这不起作用,因为我不知道应该写什么,而不是.scroll-pane

这是我的fxml:

这是我目前的代码:

package application;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.util.Optional;

import javafx.fxml.FXML;

import javafx.scene.control.Button;

import javafx.scene.control.TextArea;

import javafx.scene.control.TextField;

import javafx.scene.control.TextInputDialog;

import javafx.scene.input.KeyCode;

import javafx.scene.input.KeyEvent;

public class MainController

{

Socket client;

BufferedReader re;

PrintWriter wr;

String name = "User";

@FXML

private TextField sendTextField;

@FXML

private TextArea messageArea;

@FXML

private Button sendBtn;

public void handleSendButton()

{

sendMessageToServer();

}

public void handelSendKey(KeyEvent event)

{

if (event.getCode() == KeyCode.ENTER)

{

sendMessageToServer();

}

}

public void handelConnectButton()

{

connectToServer();

Thread t = new Thread(new MessagesFromServerListener());

t.start();

}

public void changeName()

{

setName(openNameDialog());

}

private void setName(String name)

{

this.name = name;

}

private String openNameDialog()

{

TextInputDialog dialog = new TextInputDialog();

dialog.setTitle("Change your name");

Optional result = dialog.showAndWait();

String entered = "none.";

if (result.isPresent())

{

entered = result.get();

}

return entered;

}

private String openIPDialog()

{

TextInputDialog dialog = new TextInputDialog();

dialog.setTitle("Type in the Server IP");

Optional result = dialog.showAndWait();

String entered = "none.";

if (result.isPresent())

{

entered = result.get();

}

return entered;

}

public void sendMessageToServer()

{

if (!(sendTextField.getText().isEmpty()) && sendTextField.getText() != null

&& sendTextField.getText().trim().length() > 0)

{

wr.println(name + ": " + sendTextField.getText());

wr.flush();

sendTextField.setText("");

messageArea.requestFocus();

}

}

public boolean connectToServer()

{

try

{

client = new Socket(openIPDialog(), 33377);

re = new BufferedReader(new InputStreamReader(client.getInputStream()));

wr = new PrintWriter(client.getOutputStream());

appendMessage("Network connection established.");

return true;

} catch (Exception e)

{

appendMessage("Could not establish network connection.");

return false;

}

}

private void appendMessage(String string)

{

messageArea.appendText(string + "\n");

}

public class MessagesFromServerListener implements Runnable

{

@Override

public void run()

{

String message;

try

{

while ((message = re.readLine()) != null)

{

appendMessage(message);

}

} catch (IOException e)

{

appendMessage("Nachricht konnte nicht empfangen werden!");

e.printStackTrace();

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值