小编isa*_*s-b的帖子

31
推荐指数
2
解决办法
4990
查看次数

在圆弧上画一个圆形的空心拇指

我想创建一个圆形图形,它将显示我的应用程序中的一系列值.这些值可分为3类:低,中,高 - 由3种颜色表示:蓝色,绿色和红色(分别).

在此范围之上,我想显示实际测量值 - 在相关范围部分上以"拇指"的形式显示:

见附图

根据测量值,白色拇指在范围弧上的位置可以改变.

目前,我可以通过在视图的onDraw方法内的相同中心绘制3个弧来绘制3色范围:

width = (float) getWidth();
height = (float) getHeight();

float radius;

if (width > height) {
    radius = height / 3;
} else {
    radius = width / 3;
}

paint.setAntiAlias(true);
paint.setStrokeWidth(arcLineWidth);
paint.setStrokeCap(Paint.Cap.ROUND);
paint.setStyle(Paint.Style.STROKE);

center_x = width / 2;
center_y = height / 1.6f;

left = center_x - radius;
float top = center_y - radius;
right = center_x + radius;
float bottom = center_y + radius;

oval.set(left, top, right, bottom);

//blue arc
paint.setColor(colorLow); …
Run Code Online (Sandbox Code Playgroud)

android shapes draw android-graphics

26
推荐指数
1
解决办法
2255
查看次数

动画通过点数组

我确信有一种简单的方法可以做到这一点,但我被困住了.假设我有一个点列表:

Point[] list = {pointA, pointB, pointC, ...}
Run Code Online (Sandbox Code Playgroud)

我想通过每个点动画一个ImageView所以我尝试了这个:

id = 0;
AnimatorListenerAdapter animEnd = new AnimatorListenerAdapter() {
    @Override
    public void onAnimationEnd(Animator animation) {
        super.onAnimationEnd(animation);
        id++;
        if(id != list.length) {
            iv.animate()
                .translationX(list[id].getX())
                .translationY(list[id].getY())
                .setDuration(200)
                .setListener(this);
        }
    }
};

iv.animate()
    .translationX(list[id].getX()).translationY(list[id].getY())
    .setDuration(200).setListener(animEnd);
Run Code Online (Sandbox Code Playgroud)

它有效,但每个动画之间有一点延迟.

任何的想法?谢谢 !

animation android android-animation

11
推荐指数
1
解决办法
769
查看次数

Android KeyPairGenerator始终生成相同的密钥对

我正在创建一个为用户生成密钥对的应用程序.但在每个设备中,密钥都是相同的.这是我的代码:

public KeyPair generateKeys() {
    KeyPair keyPair = null;
    try {
        // get instance of rsa cipher
        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
        keyGen.initialize(1024);            // initialize key generator
        keyPair = keyGen.generateKeyPair(); // generate pair of keys
    } catch(GeneralSecurityException e) {
        System.out.println(e); 
    }
    return keyPair;
}
Run Code Online (Sandbox Code Playgroud)

并显示生成的密钥代码是:

KeyPair keyPair = rsa.generateKeys();

byte[] publicKey = keyPair.getPublic().getEncoded();
byte[] privateKey = keyPair.getPrivate().getEncoded();
privateText.setText( Base64.encodeToString(privateKey, Base64.NO_WRAP) );
publicText.setText( Base64.encodeToString(publicKey, Base64.NO_WRAP) );
Run Code Online (Sandbox Code Playgroud)

对于每个Android设备,密钥生成仅被调用一次,因此每个设备中的密钥应该是不同的.有人能告诉我我在这里缺少什么吗?

java android key-generator key-pair

7
推荐指数
1
解决办法
4776
查看次数

将多个JProgressBar添加到JTable的TableColumn

我已经加入多JProgressBarTableColumnJTable.

在进行某些计算后,我正在使用数据更新所有JProgressBar,但只有最后一个ProgressBar(在这种情况下ProgressBar progressObj4)添加的内容正在更新.

我怎样才能更新所有的ProgressBars?

基本要求是我在上传时显示文件进度条的状态.目前我正在硬编码4个进度条以测试所有进度条是否正在更新文件的状态,但我需要动态创建它们.进度条总数没有上传的文件数.另外,如何获取进度条的各个实例并更新其状态?

我附加了添加到表列的进度条的源代码.

//tc = object of TableColumn

progressObj1 = new ProgressBarRenderer("Progress1");
progressObj1.setValue(0);
progressObj1.setStringPainted(true);
progressObj1.setBackground(Color.WHITE);
progressObj1.setBorderPainted(true);

tc.setCellRenderer(progressObj1);

progressObj2 = new ProgressBarRenderer("Progress2");
progressObj2.setValue(0);
progressObj2.setStringPainted(true);
progressObj2.setBackground(Color.WHITE);
progressObj2.setBorderPainted(true);

tc.setCellRenderer(progressObj2);

progressObj3 = new ProgressBarRenderer("Progress3");
progressObj3.setValue(0);
progressObj3.setStringPainted(true);
progressObj3.setBackground(Color.WHITE);
progressObj3.setBorderPainted(true);

tc.setCellRenderer(progressObj3);

progressObj4 = new ProgressBarRenderer("Progress4");
progressObj4.setValue(0);
progressObj4.setStringPainted(true);
progressObj4.setBackground(Color.WHITE);
progressObj4.setBorderPainted(true);

tc.setCellRenderer(progressObj4);
Run Code Online (Sandbox Code Playgroud)

java swing jtable tablecellrenderer

6
推荐指数
1
解决办法
6327
查看次数

StringOps.split(String,Int)中第二个参数的含义

我试图拆分一个字符串并保留空字符串.幸运的是,我找到了一个很有前景的解决方案,它给了我预期的结果,如下面的REPL会话描

scala> val test = ";;".split(";",-1)
test: Array[String] = Array("", "", "")
Run Code Online (Sandbox Code Playgroud)

我很好奇第二个参数实际上做了什么并潜入scala文档但除此之外什么都没找到:

在此输入图像描述

在REPL解释器中我只能获得以下信息:

scala> "asdf".split
Run Code Online (Sandbox Code Playgroud)

TAB

def split(String): Array[String]        
def split(String, Int): Array[String]
Run Code Online (Sandbox Code Playgroud)

问题 是否有人为这些记录严重的参数提供备用文件来源?或者有人可以解释这个2dn参数对这个特定功能的作用吗?

scala

6
推荐指数
1
解决办法
3366
查看次数

SBT中任务和命令之间的差异和相似之处

我最近被告知不要在这个答案上混淆任务和命令,这让我首先意识到甚至存在差异.在我的研究过程中,混淆甚至更多,我必须承认,我显然无法将两者分开!我认为主要的问题是术语经常被同义地使用,但概念是不同的,高度相关并且在某种程度上非常相似.阅读文档并没有让我满意.我不想在sbt文档中明确显示问题,所以不要误解我,但我希望你能看到我目前的进展.我在旅途中将我的问题标记为大胆,并在其前面添加了一个数字.

研究

我咨询的第一个资源是文档中的" 任务和命令"部分,它仅指向入门指南.

入门

入门指南并没有真正解释这方面的差异.特别是定义任务和设置部分似乎引入了更多的混淆,以及类型之间的目标; Setting[T],Setting[Task[T]],Task[T]和键和与其对应的类型的术语.

TaskKey[T]据说A 定义了一个任务.任务是诸如compile或之类的操作package.它们可能返回Unit(Unit为Scala void),或者它们可能返回与任务相关的值,例如packagea TaskKey[File],它的值是它创建的jar文件.

这有点古怪但现在还可以,因此TasksTaskKey具有类型结果的实例T.

每次启动任务时,例如通过compile在交互式sbt提示符下键入,sbt将重新运行一次涉及的任何任务.

因此,任何任务都可以在sbt提示符下找到.那么命令的区别在哪里呢?在其他部分,两者似乎都是同义词,就像这里一样." 更多关于设置 "部分进一步描述:

请记住,某些设置描述了任务,因此这种方法也会在任务之间创建依赖关系.

因此,任务可能相互依赖,由设置引入.

插件扩展了构建定义,最常见的是添加新设置.新设置可能是新任务.例如,插件可以添加codeCoverage任务,该任务将生成测试覆盖率报告.

插件可能会使用设置引入新任务.

还要记住.sbt构建定义,设置在项目重新加载之前具有固定值,而每次"任务执行"都会重新计算任务(每次有人在sbt交互式提示符或批处理模式下键入命令时).

这让我觉得命令只是在sbt提示符下输入的内容,或者是使用批处理模式直接输入到终端的命令.此外,它产生了一个想法,即命令仅作为每个任务的浅前端.#1每个任务都有相应的命令吗?

通过定义触发的插件,可以使用自动插件作为跨所有子项目注入自定义任务命令的便捷方式.

在这里,我认为命令可以单独设置 - 类似于任务.但是," 运行命令 …

scala sbt

6
推荐指数
1
解决办法
648
查看次数

如何清理输入

当用户在Tomcat Webapp中提交表单时,我愿意使用“ OWASP ESAPI for Java”来清理用户的输入。

我曾经这样使用org.apache.commons.lang.StringEscapeUtils

public static String myEscapeHtml(String s)
{
    String s_escapedString = null;       
    s_escapedString = StringEscapeUtils.escapeHtml(s);
    return s_escapedString;
}
Run Code Online (Sandbox Code Playgroud)

我不知道这是否足以保护网络应用“合理地” ...

我想知道使用OWASP ESAPI应该编写哪些代码行来清理Tomcat webapp用户输入。

您能否举一个将一个或几个ESAPI“过滤器”(转义?,编码?...)应用于字符串进行净化的示例?

后端RDBMS是PostgreSQL。

Tomcat服务器可以在Linux服务器上运行,也可以在Windows服务器上运行。

感谢你并致以真诚的问候。

java input sanitize owasp esapi

5
推荐指数
1
解决办法
2万
查看次数

如何将项目动态添加到 WrapPanel?

我有以下 XAML:

<Window x:Class="ImageComparing.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="350" Width="525" xmlns:my="clr-namespace:ImageComparing" Title="Image comparing">
    <DockPanel>
        <ToolBar Name="toolbar1" DockPanel.Dock="Top" Height="41" Background="#FFA5D95A">
            /*other content*/
        </ToolBar>
        <WrapPanel Name="wrapPanel1" >
            /*other content*/
            <Label Content="Label" Height="28" Name="label1" />
        </WrapPanel>
    </DockPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

我想添加内容wrapPanel1- 我尝试了以下代码:

if (info.Attributes == FileAttributes.Directory)
    wrapPanel1.Children.Add(new FolderEntry(info.Name));
else
    wrapPanel1.Children.Add(new FileEntry(info.Name));
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这些项目没有出现。我该如何解决这个问题?

c# wpf

4
推荐指数
1
解决办法
5553
查看次数

为何小心使用"受保护"

CoreJavaⅠ一书中,它说......

protected应谨慎使用关键字.如果您使用protected字段设置类,则如果要更改它,则必须通知所有使用此类的程序员.

我不明白.如果Son extends Father,并且Father已经改变,Son则没有受到影响.这样对吗?

java protected

3
推荐指数
1
解决办法
88
查看次数

数据未插入sqlite数据库

嗨,在我的应用程序中,我有想要插入我的sqlite数据库的数据.所以我已经成功创建了数据库,但问题是它没有将数据插入数据库.

我的数据库创建代码.

 - (void)createDatabase
  {

     NSArray *directories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
     NSString *doctumentsDirectory = [directories lastObject];
     self.databasePath = [[NSString alloc] initWithString:[doctumentsDirectory stringByAppendingPathComponent:@"/bp.sqlite"]];

     NSFileManager *fileManager = [NSFileManager defaultManager];

   // create DB if it does not already exists
   if (![fileManager fileExistsAtPath:self.databasePath]) {

       const char *dbPath = [self.databasePath UTF8String];

    if (sqlite3_open(dbPath, &_myDataBase) == SQLITE_OK) {

        char *errorMsg;
        const char *sql_statement = "CREATE TABLE IF NOT EXISTS br (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, COST TEXT,QUTY TEXT)";

        if (sqlite3_exec(_myDataBase, sql_statement, NULL, …
Run Code Online (Sandbox Code Playgroud)

sqlite insert ios ios7

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