我最近遇到了一个试图在Swing中实现模型 - 视图 - 控制器的问题.
我有一个由子面板组成的GUI类,这些子面板由其他子面板组成.现在,在其中一个子子面板中有一个JButton.在ActionListenerfor for this中JButton我想调用控制器中的方法.为了做到这一点,我需要将控制器深入到GUI的内部,到达JButton所在的子子面板.因此,在本次的子面板,我需要一个连接ActionListener到JButton并填写actionPerformed()调用,我想在控制器中调用该方法.
我相信你们都看到了这个问题.是否有任何好方法可以避免将控制器深入到GUI的内部.
我唯一的想法是让控制器成为一个单身人士将它从视图中分离出来,但我听说单身人士通常是邪恶的.
关于这个问题的任何建议都将非常感激.
java model-view-controller swing actionlistener propertychangelistener
在Win32_Product尝试查询以找到软件版本后,我无法理解为什么结果如此之慢。比查询Win32_service或Win32_process. 所以来到这里看看我是否遗漏了什么,我发现其他人报告了同样的问题,这篇文章解释了原因。
查找已安装软件的最常建议替代方法是查询一个或三个注册表项。这将是我的第一个解决方案,但我的公司尚未开始配置服务器以接受PSRemoting。任何 reg 查询只会返回 Kerberos 身份验证错误。我可以PSRemoting在单个服务器上启用,但我的团队支持 30K 系统。所以这个解决方案已经出来了。
最重要的是,我们正在将 Symantec Endpoint Protection 从 v. 11 升级到 v. 12,我想要一个简单的检查来查找服务器上安装的版本。除了Win32_Product注册表查询之外,还有其他方法可以找到版本吗?
我尝试使用 Material Design 颜色和主题创建我的第一个 c#/wpf/xalm 项目。我有一些教程,其中定义了一些样式,例如checkboxes:
Style="{StaticResource MaterialDesignActionDarkCheckBox}
Style="{StaticResource MaterialDesignActionLightCheckBox}
for Buttons Style="{StaticResource MaterialDesignFlatButton}"
Run Code Online (Sandbox Code Playgroud)
等等。
我的问题是:在哪里可以找到 Material Design 中所有可用样式的列表?
我在gradle.properties文件中添加了一个新选项:
android.enableSeparateAnnotationProcessing=true
但是我从编译器/构建器那里得到了以下警告:
警告:该选项设置
android.enableSeparateAnnotationProcessing=true是实验性的,不受支持。
我也试图做到这一点false,但我收到以下消息:
Gradle 可能会禁用增量编译,因为以下注解处理器不是增量编译器:compiler-1.1.1.jar (android.arch.persistence.room:compiler:1.1.1), compiler-4.8.0.jar (com.github.bumptech .glide:compiler:4.8.0)、butterknife-compiler-8.6.0.jar (com.jakewharton:butterknife-compiler:8.6.0)。考虑在 gradle.properties 文件中设置实验性功能标志 android.enableSeparateAnnotationProcessing=true 以在单独的任务中运行注释处理并使编译增量。
环境:
JRE 1.8.0_152-release-1136-b06 amd64
JVM OpenJDK 64-Bit Server VM by JetBrains sro
Android Studio 3.2.1 Build #AI-181.5540.7.32.5056338
Gradle 4.10.3
Android Gradle.1插件:3.
安卓文档:
当您包含此标志时,Android Gradle 插件会在单独的任务中执行注释处理器,并允许 Java 编译任务以增量方式运行。 https://developer.android.com/studio/releases/gradle-plugin
将字符串添加到另一个字符串的性能更高效?
使用StringBuilder.Insert方法还是string.Concat方法?
messageString.Insert(0, prependedString);
Run Code Online (Sandbox Code Playgroud)
要么
string.Concat(prependedString, messageString);
Run Code Online (Sandbox Code Playgroud)
在我的情况下,消息字符串相对较大,前置字符串很短.
Gradle是否需要JDK来编译Java源文件?或者它正在使用自己的内部编译器?
提前致谢
什么是之间的不同removeDialog()和dismiss()和dismissDialog()?因为我可以毫无问题地一起使用它们.
而且是事在实现时DialogInterface.OnClickListener还是AlertDialog.OnClickListener?
我搜索了很多但找不到任何有用的东西.
编辑: 我正在为Android 2.3开发.
示例代码:
public final class OptionsPreference extends PreferenceActivity implements DialogInterface.OnClickListener
{
private AlertDialog noInternetDialog = null;
//...
@Override
protected void onPause()
{
if (this.noInternetDialog != null)
{
Log.d(LOG_TAG, "Destroying noInternetDialog...");
this.noInternetDialog.dismiss(); // X?
removeDialog(DIALOG_NOINTERNET); // X?
dismissDialog(DIALOG_NOINTERNET); // X?
this.noInternetDialog = null;
}
super.onPause();
}
@Override
protected final Dialog onCreateDialog(final int id)
{
switch (id)
{
case DIALOG_NOINTERNET:
{
final AlertDialog.Builder _builder = new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_info).setMessage(R.string.str_nointernet); …Run Code Online (Sandbox Code Playgroud) 我在MonoTouch项目中成功使用了SQLite-net(https://github.com/praeclarum/sqlite-net).但是,当我尝试在Mono Android中使用相同的操作时,数据库调用会在Prepare2方法中引发异常.
我正在Android项目中使用SQLite-Net文件.
我是否需要针对MonoAndroid进行任何更改?
任何帮助高度赞赏.
序列化器JsonSerializer有异步版本的方法。
我想澄清一下在什么情况下使用它们?
我通常默认使用简单版本的序列化/反序列化,从不关心异步版本。但在某些情况下可能最好使用异步版本。