Tag: 用户界面

使WinForms TextBox的行为与浏览器的地址栏类似

当一个C#WinForms文本框收到焦点时,我希望它的行为就像您的浏览器的地址栏。 看看我的意思,点击你的网页浏览器的地址栏。 你会注意到以下行为: 在文本框中单击应该select所有的文本,如果文本框以前没有集中。 在文本框中鼠标向下拖动,只应select我用鼠标突出显示的文本。 如果文本框已经聚焦,则单击不会select所有文本。 以编程方式或通过键盘选项卡聚焦文本框应select所有文本。 我想在WinForms中完全做到这一点。 最快的警报:请在回答之前阅读以下内容! 多谢你们。 🙂 在.Enter或.GotFocus事件期间调用.SelectAll()将不起作用,因为如果用户单击文本框,则将将光标放在他单击的位置,从而取消select所有文本。 在.Click事件中调用.SelectAll()将不起作用,因为用户将无法使用鼠标select任何文本。 .SelectAll()调用将保持覆盖用户的文本select。 调用BeginInvoke((Action)textbox.SelectAll)在焦点/input事件input不起作用,因为它违反了上面的规则#2,它将继续覆盖用户的焦点select。

给定背景颜色的良好文本前景色

我正在绘制一个颜色selectbutton,我正在寻找一个好的和简单的公式来获得一个良好的文本颜色(前景)的RGB给定的背景颜色。 一个简单的尝试将只是采取补色,但这将产生一个奇怪的button像纯蓝色或纯红色的颜色。 有没有人知道这样做? 如果它很重要,我使用QT。

设置和禁用JToggleButton的图标

嗨,我想做一个匹配的记忆游戏,我使用JToggleButton。 最主要的是当我按下它必须显示一个图片,我必须find其他相同的图片。 所以问题是当我创build一个没有任何图标的button,我不能使用其他方法例如.setRollOverIcon() .setPressedIcon()等,所以我赞赏,如果你能帮助我。 并感谢:) import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ButtonsIcon extends JFrame { private static final long serialVersionUID = 1L; private ImageIcon errorIcon = (ImageIcon) UIManager.getIcon("OptionPane.errorIcon"); private ImageIcon infoIcon = (ImageIcon) UIManager.getIcon("OptionPane.informationIcon"); private ImageIcon warnIcon = (ImageIcon) UIManager.getIcon("OptionPane.warningIcon"); public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() […]

JTable右alignment页眉

基本上,我有一个JTable包含右alignment单元格的列,但左alignment的标题看起来非常糟糕。 我想正确alignment这些列的标题,而不改变标题的“外观和感觉”。 谢谢

我如何运行Windows GUI应用程序作为服务?

我有一个现有的GUI应用程序,应该已经实现为一项服务。 基本上,我需要能够远程login和退出Windows 2003服务器,并仍然保持这个程序运行。 这甚至有可能吗? 编辑:进一步细化在这里…我没有来源,这不是我的应用程序。

从JavaFX中的不同线程更新UI

我正在开发一个包含多个TextField对象的应用程序,这些对象需要更新以反映关联的后端属性中的更改。 TextField不可编辑,只有后端可能会更改其内容。 据我所知,正确的方法是在一个单独的线程上运行繁重的计算,以免阻塞用户界面。 我使用javafx.concurrent.Task完成了这个javafx.concurrent.Task并使用updateMessage()函数向JavaFX线程传递了一个单值,该工作正常。 但是,我需要更新一个以上的价值,因为后端正在进行更新。 由于后端值是作为JavaFX属性存储的,所以我试着简单地将它们绑定到每个GUI元素的textProperty ,并让绑定完成工作。 然而,这不起作用。 在运行一会儿之后,即使后端任务仍在运行, TextField也会停止更新。 没有例外。 我也尝试使用Platform.runLater()主动更新TextField而不是绑定。 这里的问题在于, runLater()任务的调度速度比平台能够运行得快,所以GUI变得呆滞,即使在后端任务完成之后也需要时间来“赶上”。 我在这里find了几个问题: logging器条目翻译到用户界面停止更新随着时间的推移 JavaFX中的multithreading挂起UI 但我的问题依然存在。 总结:我有一个后端对属性进行更改,我希望这些更改显示在GUI上。 后端是一个遗传algorithm,所以它的操作被分解成几代。 我希望TextField在两代之间至less刷新一次,即使这会延误下一代。 更重要的是GUI比GA运行得更快。 如果我没有清楚问题,我可以发表一些代码示例。 UPDATE 我按照James_D的build议设法做到了。 为了解决后台不得不等待控制台打印的问题,我实现了一个缓冲的控制台。 它存储要在StringBuffer打印的string,并在调用flush()方法时将其附加到TextArea 。 我使用AtomicBoolean来防止下一代发生,直到刷新完成,因为它是由一个Platform.runLater() runnable完成的。 另外请注意,这个解决scheme非常慢。

自定义iPhone键盘

我需要(即客户的要求)为用户提供一个自定义的键盘来input文本到文本字段和区域。 我已经有了键盘的东西,并附加到文本字段的testing,但是我想使它更通用,并像标准的iPhone键盘,即当用户select一个可编辑的文本控制时出现。 目前我的控制器知道目标和目标是不可编辑的,以防止标准键盘。 有没有办法钩入文本控件的行为,所以我很容易使用我自己的键盘? 谢谢,维克

从服务访问UI线程处理程序

我正在尝试一些新的东西,我需要访问UI线程的处理程序。 我知道以下几点: UI线程有自己的处理程序和循环 任何消息将被放入UI线程的消息队列中 循环者拾取事件并将其传递给处理程序 处理程序处理消息并将特定事件发送到UI 我想有我的服务,必须获得UI线程处理程序,并将消息放入此处理程序。 所以这个消息将被处理,并将发布到用户界面。 这里的服务将是一个正常的服务,将由一些应用程序启动。 我想知道这是否可能。 如果是这样,请build议一些代码片段,以便我可以尝试。 问候Girish

Python中用简单的对话框select一个文件

我想在Python控制台应用程序中获取文件path作为input。 目前我只能要求在控制台中input完整path。 有没有办法触发一个简单的用户界面,用户可以select文件,而不是input完整的path?

SwingWorker,Thread.sleep()或javax.swing.timer? 我需要“插入一个暂停”

我正在做一个记忆游戏,我想设置它,所以我点击第一个"card" ,然后第二个,如果他们不是相同的第二个卡显示几秒钟,然后他们回到"non-flipped"位置。 我尝试使用SwingWorker , Thread.sleep和SwingTimer但我不能让它工作。 使用Thread.sleep ,第二张牌不会"flip"如果它是重复的,它将等待睡眠时间并消失。 如果它不匹配,则等待“正面朝下”,在睡眠计时器之后,第一张卡片会翻转。 无论我在哪里放置Thread.sleep,都会发生这种情况。 随着Swing Timer只看起来“改变定时器”,而我正在与卡交互,所以我最终翻动8张卡之前,激活。 我没有与SwingWorker运气,我甚至不知道它会为我所寻找的。 这是我有的代码: class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent e) { for(int index = 0; index < arraySize; index++) { if(button[index] == e.getSource()) { button[index].setText(String.valueOf(cards.get(index))); button[index].setEnabled(false); number[counter]=cards.get(index); if (counter == 0) { counter++; } else if (counter == 1) { if (number[0] == […]