我写了一个JTable的单元格编辑器.现在它有一个bug.我希望它在第一次加载时显示默认值.编辑后,它将显示用户输入.运行应用程序,您将了解该错误.
怎么解决?
谢谢.
package com.swing;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class PropPageTest extends JPanel {
private static final long serialVersionUID = 1555593265606867986L;
public JTableX table;
public DefaultTableModel model;
private String[] col_names = { "Name", "Value" };
private String[] anchor_values = { "CENTER", "NORTH" };
public String[] default_value = {"John", "NORTH"};
public boolean isFirstTimeLoad = true;
private void createGUI() {
setLayout(new BorderLayout());
model …Run Code Online (Sandbox Code Playgroud) 我最近遇到了一些代码,通过硬编码替换了交换机的使用
Dictionary<string (or whatever we would've been switching on), Func<...>>
Run Code Online (Sandbox Code Playgroud)
而且无论转换到底在哪里,它都会改为dict ["value"].调用(...).代码在某种程度上感觉不对,但与此同时,这些方法确实看起来更清晰一些,特别是在有很多可能的情况下.我不能给出任何关于为什么这是好的或坏的设计的理由,所以我希望有人可以给出一些支持/谴责这种代码的理由.性能有提升吗?失去清晰度?
例:
public class A {
...
public int SomeMethod(string arg){
...
switch(arg) {
case "a": do stuff; break;
case "b": do other stuff; break;
etc.
}
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
变
public class A {
Dictionary<string, Func<int>> funcs = new Dictionary<string, Func<int>> {
{ "a", () => 0; },
{ "b", () => DoOtherStuff(); }
... etc.
};
public int SomeMethod(string arg){
...
funcs[arg].Invoke();
...
}
...
}
Run Code Online (Sandbox Code Playgroud) 我在XML文件上使用XML文本阅读器,该文件可能包含对读者无效的字符.我最初的想法是创建我自己的流阅读器版本并清除坏角色,但它严重减慢了我的程序.
public class ClensingStream : StreamReader
{
private static char[] badChars = { '\x00', '\x09', '\x0A', '\x10' };
//snip
public override int Read(char[] buffer, int index, int count)
{
var tmp = base.Read(buffer, index, count);
for (int i = 0; i < buffer.Length; ++i)
{
//check the element in the buffer to see if it is one of the bad characters.
if(badChars.Contains(buffer[i]))
buffer[i] = ' ';
}
return tmp;
}
}
Run Code Online (Sandbox Code Playgroud)
根据我的探查器,代码花了88%的时间用于if(badChars.Contains(buffer[i]))正确的方法,所以我没有造成可怕的缓慢?
我有一个我用方法childNodes()定义的对象,它返回一个数组.当我做类似的事情时:
my @arr = obj->childNodes()
我可以清楚地看到它可以正确返回数组.
我的问题是,当我尝试使用此方法设置另一个类对象的属性时,Perl决定我只想要childNodes()的长度而不是完整的数组.这根本不是我想要的,并且毁掉了一切.我正在使用的代码是:
$self->{'_arr'} = obj->childNodes()
如何将此set $ self - > {'_ arr'}设置为数组而不仅仅是标量数?
提前致谢!
我有一个包含以下值的表:
Value
0
1.2
1.3
1.4
0
1.2
1.3
1.4
Run Code Online (Sandbox Code Playgroud)
从上面的数据中,我需要将设置重置为0后的2个最高数字相加,从而得到总数2.8.
如果我每次有0都可以让row_number()重新启动,那将是完美的,但它不提供这样的功能.
谢谢.
出于某种原因,每当我(尝试)启动我的应用程序时,手机决定启动系统设置而不是我的"主要活动".是的,我指的是"Android系统设置",而不是我的应用程序.
这只发生在我的手机上,我想这可能与我的应用刚刚打开系统设置的事实有关,当我决定用Eclipse的新版本重新启动时.
可以从Eclipse中启动应用程序,但是当我从应用程序导航回来时它返回到系统设置而不是主屏幕,就好像首先启动设置活动然后启动我的活动一样.如果我然后从手机启动应用程序,我得到的只是系统设置.
该应用程序正在侦听特定URL子字符串的VIEW操作,当我使用匹配的URL启动应用程序时,我得到的结果与从Eclipse启动应用程序时相同,应用程序启动,但是当我返回时,我返回设置.
我已经尝试使用谷歌搜索这个问题,而我所能找到的是关于Android 应用程序被杀死时的Android 保存状态,但没有任何关于如何重置此状态的信息.我试过卸载应用程序,查杀系统设置,重新启动手机,重新安装,清除应用程序数据..没有运气..
对于它的价值,这里是清单中我主要活动的定义,
<activity android:name=".HomeActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:clearTaskOnLaunch="true" android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:pathPrefix="/isak-web-mobile/smart/" android:scheme="http" android:host="*"></data>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
这是从我尝试启动我的应用程序时的logcat行,没有任何关于任何设置的地方.
I/ActivityManager( 1301): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=se.opencare.isak/.HomeActivity }
Run Code Online (Sandbox Code Playgroud)
当我从Eclipse启动时,我也得到了这一行(正如人们所期望的那样),
I/ActivityManager( 1301): Start proc se.opencare.isak for activity se.opencare.isak/.HomeActivity: pid=23068 uid=10163 gids={3003, 1007, 1015}
Run Code Online (Sandbox Code Playgroud)
如果重要的话,手机是HTC Desire Z,运行2.2.1.
目前,这是我的HomeActivity,
public class HomeActivity extends Activity {
public static final String TAG = "HomeActivity";
@Override …Run Code Online (Sandbox Code Playgroud) 有人可以告诉我如何在画廊中创建Android手机风格的图片视图.也就是说,当您单击图片时,它会弹出一个全屏幕,您可以在屏幕上滑动手指并翻阅文件夹中的其他图片.
你如何创建特定的视图?
我试图调用在ASP.NET应用程序中托管的WCF 4 Http Web服务.该服务受SiteMinder保护.
我想知道如何以编程方式调用Web服务,更具体地说,我需要传递哪些信息才能在SiteMinder中获得授权以访问我的资源.
我从同一台服务器上运行的ASP.NET应用程序发出请求,因此我可以访问身份验证cookie.
获取位置提供商状态的Android中最好的方法是什么?注册LocationListener以进行位置更新时,onStatusChanged(String provider, int status, Bundle extras)只要状态发生更改,就会调用回调.但是,我没有找到获取当前状态(的方式AVAILABLE,OUT_OF_SERVICE,TEMPORARILY_UNAVAILABLE)没有注册到位置更新.该isProviderEnabled方法仅指示提供者是否通常打开(在设备的设置中),因此可能会返回,true尽管提供程序已停止服务...是否有其他方法可以执行此操作?
另一个问题:是否可以在不注册位置更新的情况下监听状态更新?我想听一个特定的提供商的位置,但同时检查其他人是否可用.我目前的解决方法是将最小时间和距离设置为一个非常高的值,但我想知道是否有更好的解决方案......
谢谢你的任何提示!
顺便说一句:如果可能,解决方案应该适用于Android 1.1
有没有办法控制循环的执行速度?我有一个以30000步循环运行的模拟.我想想象一下在那个循环中发生的事情,如果可能的话,在运行时控制执行的速度.任何想法我怎么能这样做?
android ×3
c# ×2
java ×2
asp.net ×1
cell ×1
cookies ×1
jtable ×1
lambda ×1
loops ×1
optimization ×1
perl ×1
siteminder ×1
sql ×1
sql-server ×1
swing ×1
web-services ×1