标签: user-interface

执行流程时更新TextArea

我发现当我单击“无响应”之类的“开始”按钮时,我的GUI在3-4秒后开始冻结。当我继续单击该应用程序时,它被迫关闭。
现在我想防止这种情况,但是我不知道如何。据我所知,JavaFX在单线程中运行,因此,要在执行方法时更新我的​​TextArea,我需要在另一个线程中运行这些方法。
我希望有一个人可以帮助我。

我的项目看起来如何?

我有一个FXML,一个控制器,一个处理程序,一个Transformer,还有一个Writer和Reader类(在Handler类中使用)。
当我单击绑定到Controller中的方法的按钮时,将创建Handler的实例,该实例调用Reader读取文本文件,并将其转换为字符串列表(逐行)。
另外,生产线正在被操纵。此后,使用Writer创建一个新文件,并将新的操纵行写入该文件。
还允许用户引用多个文件。
我想要的是,每当读者开始读取“正在读取文件...”之类的文件时,文本区域都会显示。
然后在Transformer生效时附加“正在操纵文件...”,然后
将新行写入新文件时,“正在写入文件...”。

这是一些代码。
控制器:

public class FXMLDocumentController implements Initializable {

@FXML
private TextArea console;

@FXML
private void handleButtonAction(ActionEvent event) {
    System.out.println("You clicked me!");
    Handler hand = new Handler();
    hand.handle(files);
}

@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
}    

}
Run Code Online (Sandbox Code Playgroud)

处理程序:

public class Handler {

public void handle(List<String> files) {
    for (String s : files) {
        List<String> ls = Reader.readFile(s);
        Writer.writeFile(Transformer.transform(ls));
    }
}
Run Code Online (Sandbox Code Playgroud)

每当读取,操作或写入文件时,应如何更改代码以更新TextArea?

信息:我知道Handler将无法编译,因为我删除了包含文件路径字符串的列表“文件”的初始化。

如果我遗漏了相关信息,请随时提问。
我提前谢谢你!

concurrency user-interface javafx updates fxml

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

React生命周期方法(如componentWillReceiveProps)的典型用例是什么?

componentWillReceiveProps和其他生命周期方法似乎是欺骗性的诱惑,为无经验的React编码器手中的代码带来不必要的复杂性和噪音.它们为什么存在?他们最典型的用例是什么?在不确定的时刻,我怎么知道答案是否存在于生命周期方法中?

javascript user-interface web reactjs

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

如何使用WinAPI在C++中创建带有标签的spinbox的窗口

我花了一天的时间试图让这个工作变得如此简单: 纺纱器

我所需要的只是能够以编程方式获取值,设置值,当然还允许用户通过写入字段或按箭头来设置值.MSDN对此非常麻烦,并没有提供足够的信息如何工作.在互联网的其他部分,没有代码可以做的工作示例.

我正在使用Windows 7中的MinGW编译程序,我需要它在Windows 7及更高版本上运行.无论是否使用程序Win32 API或MFC编写都没关系.

编辑: 经过一番讨论,我意识到我忘了指出重要的事实.我真的只是编写一个非常简单的应用程序,它将包含不超过3个小部件,我不打算将来使用Win32 API.因此,我没有理由学习所有这些特定于Windows的机制,并遵循MSDN强大的方法,使用资源文件中的自定义对话框定义或在内存中构建.

有没有办法,怎么做没有资源文件,自定义对话框类,并尽可能少的代码行?如何在现有窗口中直接创建一个spinbox以及我需要处理哪些消息?

c++ windows user-interface winapi

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

QDateTime:自动添加当前年份

我需要QDateTime从格式中获取一个对象"hh:mm:ss".哪个年,月,日应该从当前日期开始?

除了预先yyyy-mm-dd输入字符串之外,是否有人建议任何更清洁的解决方案.

c++ user-interface qt datetime

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

JavaFX TableView不会立即更新

我有JavaFX TableViewUI更新的问题.更改可观察对象后,它不会更新UI TableView.但是,如果我执行一个神奇的仪式,TableView再次向下拉动滚动条 - 它似乎重绘了表格并更新其中的项目.通过调试,我确保了PreferencesSet ArrayList和对象的正确更新.

这是gif演示正在发生的事情

这是我第一次在这里提问,所以我可能遗漏了一些重要的信息.随意问我这个问题.先感谢您.

这是代码(我遗漏了不相关的东西):

ControllerClass:

public class TestSomethingController implements Initializable {

public TableView<PreferenceValues.PreferencesSet> preferencesTable;
public TableColumn mdColumn;
public TableColumn typeColumn;
public TableColumn tradeColumn;
public TableColumn plastColumn;
public TableColumn capColumn;
public TableColumn multColumn;
public TableColumn sizeColumn;

@Override
public void initialize(URL location, ResourceBundle resources) {
    setNorthPanel();
    setTableColumns();
    fillAllInfo();
}

private void setTableColumns() {
    mdColumn.setCellValueFactory(new PropertyValueFactory<PreferenceValues.PreferencesSet, MarketDirection>("md"));
    typeColumn.setCellValueFactory(new PropertyValueFactory<PreferenceValues.PreferencesSet, UserOfferType>("type"));
    tradeColumn.setCellValueFactory(new PropertyValueFactory<PreferenceValues.PreferencesSet, Boolean>("trade"));
    plastColumn.setCellValueFactory(new PropertyValueFactory<PreferenceValues.PreferencesSet, Long>("plast"));
    capColumn.setCellValueFactory(new PropertyValueFactory<PreferenceValues.PreferencesSet, Double>("cap"));
    multColumn.setCellValueFactory(new PropertyValueFactory<PreferenceValues.PreferencesSet, Double>("mult"));
    sizeColumn.setCellValueFactory(new PropertyValueFactory<PreferenceValues.PreferencesSet, …
Run Code Online (Sandbox Code Playgroud)

java user-interface javafx tableview

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

Java Swing GUI - 如何让线程一直处于休眠状态并通过点击唤醒?

抱歉,这是我第一次使用Threads.

我希望Parlami类线程能够睡眠,并且只能被actionListener唤醒.

我试过这种方式,但它不起作用,他还在睡觉.以这种方式使用线程是正确的还是我应该使用wait()?

package parlami;

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author giacomofava
 */
public class Parlami
{
    public boolean finito = false;
    public String s="";

    public void ascolta()
    {
        int i=0;
        while (i<=1500)
        {
            // dormi 50 millisecondi 
            try
            {
                Thread.sleep(50);
                i+=40;
            }
            catch (InterruptedException e)
            {
            }

            while (voce.SpeechInterface.getRecognizerQueueSize() > 0)
            {
                s = s+"\n"+voce.SpeechInterface.popRecognizedString();
            }
        }
    }

    public String scrivi()
    {
        return "Hai detto: "+s;
    }

    public void leggi()
    {
        voce.SpeechInterface.synthesize(s);
    }

    public void dormi(int milli) …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing multithreading

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

使用导航控制器时保持标题视图

我有一个标签,我作为标题放在屏幕的顶部.当我通过嵌入导航控制器添加导航控制器时,我希望保持可见性并仍然存在.

我主要使用故事板来帮助我创建UI.

这是没有导航控制器的应用程序的样子:

应用程序截图与橙色标题

但是,如果我添加导航控制器,我会得到以下内容:

应用程序截图导航栏已替换橙色标题

当然,我想维护一个导航控制器,这样我就不必使用自己的控制导航的按钮.据我了解,目前市场徽标隐藏在导航控制器后面.

user-interface cocoa-touch uinavigationcontroller ios

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

如何让TButton看起来像3D?

我编写了一个程序,用户可以使用该程序绘制形状,将实际按钮和其他工具放在窗体上并使它们处于活动状态.但是,我注意到这种形式的TButton和设计模式中的TButton的外观有很大不同.看看下面的图片.

这个按钮来自我的程序,图像正下方是我在此表单上创建此按钮的方式: 在此输入图像描述

constructor TMakerButton.Create(r:TRect;form:TForm);
begin
   inherited Create(r,form);
   myType := totButton;
   name := 'Button';
   caption := 'Button';
   lines := TStringList.Create;
   lines.Clear;
   button := TButton.Create(form);
   button.Parent := form;
   button.caption := string(caption);
   button.Tag := LongInt(Self);

   if form is TMakerFrm then
   begin
      button.Enabled := false;
   end;
   button.OnClick := ButtonClick;
   button.OnMouseMove := ButtonMove;

   myControl := button;
   with bounds do
   button.SetBounds(left,top,right-left,bottom-top);
end;
Run Code Online (Sandbox Code Playgroud)

这是delphi编译器中设计模式中的TButton.看看它如何看起来像具有抛光玻璃外观的3D:

在此输入图像描述

有趣的是,我的程序按钮和delphi编译器的基类是TButton所以,为什么它们看起来如此不同以及如何使我的Button看起来一样?

forms delphi 3d user-interface button

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

JavaFx list View为列表单元着色

我有一个Labels的列表视图,我想在运行时为列表单元着色。问题是我想用整个颜色(不仅是标签的背景)填充整个单元格。有没有办法在Java / CSS中做到这一点?

user-interface listview javafx listcellrenderer

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

Haskell - 单独的主要=做成块

我想让程序跳回选项部分,不要为变量"expression"赋值

我试着做嵌套的do函数:

main = do 
...
option = do
Run Code Online (Sandbox Code Playgroud)

然后我会在某些情况下只调用"选项",但它似乎没有这样工作,我找不到任何地方任何不同的解决方案.请问有人给出建议吗?

main = do
putStrLn "Enter expression:"
expression <- getLine

putStrLn "Enter a number from 1 to 5:"
putStrLn "1. Convert to Postfix"
putStrLn "2. Convert to Prefix"
putStrLn "3. Convert to Binary Expression Tree"
putStrLn "4. Substitution"
putStrLn "5. Evaluate Expression"
choice <- getLine

case (choice) of
    "1" -> putStrLn $ toPostfix expression
    "2" -> putStrLn $ toPrefix expression
    "3" -> print (parse expression)
    "4" -> do { putStrLn "Enter …
Run Code Online (Sandbox Code Playgroud)

user-interface haskell

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