小编Pan*_*vos的帖子

Swing 中的 Furigana(或 GUI 替代品......)

简单地说,我找不到在 JLabel 中轻松显示假名的方法。

作为记录:

Furigana (?????) 是一种日语阅读辅助工具,由较小的假名或音节字符组成,印在汉字(表意字符)或其他字符旁边以指示其发音。在水平文本 yokogaki 中,它们位于文本行上方,而在垂直文本 tategaki 中,它们位于文本行右侧,如下图所示。它是一种类型的 ruby​​ 文本。Furigana 在日语中也称为 yomigana (?????) 或 rubi (???)。

在 XHTML 中,Ruby Annotation元素支持这一点,而 Swing 有限的 HTML 呈现功能不支持该元素。

我最近尝试创建一个JRubyLabel能够处理 Ruby Annotation 元素的类,方法是将多个JLabel元素堆叠在一个 a 中JPanel- 但是,我对 Swing 不是很熟悉,所以从某种意义上说,我觉得我把事情复杂化了。

因此,我的问题是,按优先顺序排列:

  • Swing 是否支持显示 ruby​​ 文本?
  • 您能看到在 Swing 中实现 ruby​​ 文本的更简单或更好的方法吗?
  • 最后,还有没有其他的GUI程序-最好的Java -即支持拼音文本?

java user-interface swing ruby-characters

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

使用SSIS包上的uri和WebClient类的奇怪行为

我有一个非常奇怪的情况.

我有这个非常简单的包:

在此输入图像描述

  • 任务"获取列表"从具有一列的程序集和要运行到对象变量的URL列表中检索数据表.
  • "foreach"循环遍历对象变量并将URL加载到url字符串变量中
  • "run",使用此代码调用url(2005年,因此我坚持使用VB):

    Dim myURI As New Uri("http://" + Dts.Variables("URL").Value.ToString())
    Dim myWebClient As New System.Net.WebClient
    myWebClient.OpenReadAsync(myURI)
    
    Run Code Online (Sandbox Code Playgroud)

被调用的URL是内部的,只是读取参数并执行一系列操作需要一些时间,这就是我使用"OpenReadAsync"的原因

我的问题是:如果我有4个URL要运行,那么包只运行其中的2个.循环lops 4次,脚本被调用4次(我可以看看我是否调试它),该行myWebClient.OpenReadAsync(myURI)执行4次,有4个不同的值,但只有2次调用URL.

如果我再次运行包,则现在调用其他2个URL,这证明URL没有任何问题,如果我在浏览器上手动调用4个URL(例如,在4个选项卡上),一个接一个,它们都产生了预期的结果,这证明了解析URL的代码没有任何问题.

所以我留下了VB代码,这是我第一次使用uri和WebClient,所以我想知道我做错了什么.我还尝试在通话之间增加5秒的睡眠时间,但没有运气.

任何帮助,将不胜感激.谢谢

sql ssis webclient sql-server-2005 ssis-2005

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

处理鼠标右键双击形状

我怎么能处理这个Mouse Right Button Double Click事件Shape

c# wpf shape double-click mouseevent

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

Task.wait和continueWIth

我正在完成如下任务.

var task = Task<string>.Factory.StartNew(() => longrunningmethod()
    .ContinueWith(a =>
             longrunningmethodcompleted((Task<string>)a,
                  TaskScheduler.FromCurrentSynchronizationContext())));

task.Wait();
Run Code Online (Sandbox Code Playgroud)

我的任务将调用longrunning方法,完成后将调用完成的方法.在我的长期运动方法中,我正在推迟Thread.Sleep(30000).当我使用Task.wait系统挂起并且它没有调用longrunningmethodcompleted方法时.如果我不使用Task.wait一切顺利.

task-parallel-library c#-4.0

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

将SQL查询结果导出为CSV

我正在使用sqlcmd将带有两列的查询结果导出到csv.简单的查询是:

SELECT DISTINCT
    CustomerGuid, CustomerPassword
FROM
    ServiceOrder
ORDER BY
    CustomerGuid
Run Code Online (Sandbox Code Playgroud)

当我在Excel中打开导出的csv时,客户和密码都在同一列上.是否可以使用sqlcmd将它们拆分为自己的列.我的sqlcmd看起来像

SQLCMD -S . -d BAS -Q "SQL STATEMENT" -s "," -o "c:\data.csv"
Run Code Online (Sandbox Code Playgroud)

谢谢.

sql sql-server excel sqlcmd

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

并行运行多个任务(可变数量)并在所有任务完成后继续

我需要不并行地启动“数量”的任务(可变但少于 10 个),并等待它们全部完成,从每个任务中获取结果。我从他们每个人那里得到结果,保存在一个列表中,然后最后使用它。

这是我的代码,它正在运行,但我认为必须有一种更简洁的方法来做到这一点。

导致任务数量

List<String> Arguments = new List<String> { "AA", "BB", "CC" }; 

List<String> ResultList = new List<String>();  

//**AT LEAST I'VE GOT ONE**

Task<String> Tasks = Task<String>.Factory.StartNew(() =>
{
    return DoSomething(Arguments[0]);
});

ResultList.Add(Tasks.Result);

for (Int32 i = 1; i < Arguments.Count; i++)
{
    ResultList.Add(Tasks.ContinueWith<String>(Result =>
    {
        return DoSomething(Arguments[i]);

    }).Result);
}

//**DO I NEED THIS?? It's working even without!!**
//Tasks.Wait();

for (Int32 i = 0; i < ResultList.Count; i++)
{
    textBox1.AppendText(ResultList[i] + Environment.NewLine + Environment.NewLine);
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading task task-parallel-library

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

使用内联定义<T>初始化List <T>

你总是可以定义一个这样的类:

public class item {
  int id;
  string name;
}
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它:

List<item> items = new List<item>();
Run Code Online (Sandbox Code Playgroud)

我们不能做这样的事情:

var items = new List<{int id, string name}>();
Run Code Online (Sandbox Code Playgroud)

只是在底层对象定义简单且可预测时初始化的一种简短方法.

这在JavaScript中是可能的(我已经看过Angular中的例子).

很抱歉,如果之前得到了解答,我的快速搜索无法在Google或SO上找到此特定主题的答案.

c#

5
推荐指数
3
解决办法
158
查看次数

EF Core 3.0 中的 LINQ 重大更改。如何在没有收到警告 CA1308 的情况下比较字符串?

我有以下代码,它在 EF Core 2.1 上运行良好:

.FirstOrDefault(a => (a.Name.Equals(b, StringComparison.InvariantCultureIgnoreCase).

(好吧,运行良好意味着我得到了正确的结果,即使它正在客户端进行评估而我不知道)。

我升级到 EF Core 3.0 并且我没有收到任何错误,但是这段代码没有给出预期的结果。

我在这里看到一个解决方案。我试过了,a.Name.ToLower() == b.ToLower()但后来我得到了错误

Error CA1304 The behavior of 'string.ToLower()' could vary based on the current user's locale settings. Replace this call in 'MyFunction(string, string)' with a call to 'string.ToLower(CultureInfo)'

如果我使用 aToLower(CultureInfo.InvariantCulture)我收到消息:

Error CA1308 In method 'MyFunction', replace the call to 'ToLower' with 'ToUpperInvariant'.

如果我使用ToUpperInvariant(),则会收到错误消息(我已经知道EF Core 3.0中的LINQ 重大更改):

The LINQ expression …

.net-core .net-core-3.0 ef-core-3.0 entity-framework-core-3.0

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

SQLite 和 EF6 的愚蠢行为

我不能相信我是第一个遇到这个问题的人,但在网上没有找到任何类似的讨论。

这是简单的完整代码示例:

using SQLite.CodeFirst;
using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;

namespace ConsoleApp1
{
  class Program
  {
    static void Main(string[] args)
    {
      Entity entity = new Entity();
      Guid id = entity.Id;
      using (var context = new MyDbContext())
      {
        context.Entities.Add(entity);
        context.SaveChanges();

        // this finds an entry
        var item = context.Entities.Find(id);
      }

      using (var context = new MyDbContext())
      {
        // here it returns null
        var item = context.Entities.Find(id);
      }
    }
  }

  public class MyDbContext : DbContext
  {
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    { …
Run Code Online (Sandbox Code Playgroud)

c# sqlite entity-framework

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

Dapper:字符串未被识别为有效的日期时间

我正在使用 Dapper 访问 sqlite 数据库并获取“字符串未被识别为有效的日期时间。”。任何帮助表示赞赏。

// Create table schema
CREATE TABLE "mytable" ( "field1"   TEXT, "field2"  TEXT, "field3"  TEXT, 
                         "field4"   TEXT, "field5"  TEXT, 
                         "field6"   bit, 
                         "field7"   TEXT, "field8"  TEXT, "field9"  TEXT,
                         "field10"  TEXT, 
                         "field11"  DateTime )
Run Code Online (Sandbox Code Playgroud)

查询代码:

var result= sqliteConnection.Query<TestItem>("Select * from mytable");
Run Code Online (Sandbox Code Playgroud)

查询插入数据:

INSERT INTO "main"."mytable" ("field1", "field2", "field3", "field4", "field5", "field6", "field7", "field8", "field9", "field10", "field11") VALUES ('750eb223-2993-4d85-9d4f-3e8689e9baa7', 'some value', '', 'some value', 'some value', '1', '84', 'ae35e1e1-dd4c-4e49-a76c-d577f417bf9a', 'some value', 'HOME.aspx', 
                             '2020/01/20 17:38');
INSERT INTO "main"."mytable" ("field1", "field2", …
Run Code Online (Sandbox Code Playgroud)

c# sqlite dapper

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