小编Mic*_*ers的帖子

如何替换C#中的特定单词?

请考虑以下示例.

string s = "The man is old. Them is not bad.";
Run Code Online (Sandbox Code Playgroud)

如果我使用

s = s.Replace("The", "@@");
Run Code Online (Sandbox Code Playgroud)

然后它返回"@@ man is old. @@m is not bad."
但我想要输出"@@ man is old. Them is not bad."

我怎样才能做到这一点?

c# regex string replace

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

将其他JPanel添加到JPanel

相当基本的问题在这里.

基本上我有这样的代码:

public SuperPanel() {
    setLayout(new BorderLayout());
    add(panel1(), BorderLayout.NORTH);
    add(panel2(), BorderLayout.CENTER);
    add(panel3(), BorderLayout.SOUTH);
}
Run Code Online (Sandbox Code Playgroud)

这一切都运作良好.问题是我还有另一部分要添加到中心.add(newPanel(), BorderLayout.CENTER)显然,只是使用不起作用.但你可以在JPanels中添加JPanels,对吗?

所以我做了以下改动:

public SuperPanel() {
    setLayout(new BorderLayout());
    add(panel1(), BorderLayout.NORTH);
    add(supersweetpanel(), BorderLayout.CENTER);
    add(panel3(), BorderLayout.SOUTH);
}
Run Code Online (Sandbox Code Playgroud)

随着supersweetpanel():

public JPanel supersweetpanel() {
    JPanel sswp = new JPanel();
    setLayout(new BorderLayout());
    add(panel2(), BorderLayout.NORTH);
    return sswp;
}
Run Code Online (Sandbox Code Playgroud)

现在它覆盖了panel1!如果我将它设置为其他任何东西(CENTER,SOUTH有什么东西),前两个面板完全消失.非常感谢帮助.

java swing jpanel

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

如果控制台程序终止,程序中使用的数据库连接是否仍然保持打开状态?

在Java和C#中,它们都有类似System.terminate()的东西.如果我的程序有开放的数据库连接,数据库读取器和数据库命令变量,并且我在catch子句中终止我的程序,数据库资源是否仍然在使用?或者自从我的整个程序刚刚退出以来它们会被自动释放吗?

通常情况下,我应该如何处理这种情况,以确保我总是释放数据库连接,无论是通过正常的程序终止还是意外的程序终止?有什么好的做法?

database language-agnostic database-connection

6
推荐指数
3
解决办法
739
查看次数

JTable的实时排序

我已经弄清楚如何JTable正确排序,但我无法弄清楚如何更改表格单元格时自动更新排序顺序.现在,我有这个(诚然很长)的代码,主要是基于Java Tutorial的How to Use Tables中的代码.我突出了我所做的改变// ADDED.在这种情况下,新添加的值可以正确排序,但是当我进入编辑值时,即使我打电话,它也似乎无法求助fireTableCellUpdated

简而言之,当模型中的数据值发生变化时,如何让表格重新排序?

/*
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
 * See the standard BSD license.
 */ 

package components;

/*
 * TableSortDemo.java requires no other files.
 */

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

public class TableSortDemo extends JPanel {
    private boolean DEBUG = false; …
Run Code Online (Sandbox Code Playgroud)

java sorting model-view-controller swing jtable

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

如何在Java 3d场景上绘制2d叠加层?

我有一个用Java 3d编写的场景,其中用户的查看位置使用以下代码设置为某个坐标:

ViewingPlatform vp = simpleUniverse.getViewingPlatform();
TransformGroup steerTG = vp.getViewPlatformTransform();

Transform3D t3d = new Transform3D();
steerTG.getTransform(t3d);

t3d.lookAt(
        new Point3d(-5, 10, 25), new Point3d(0, 0, 0), new Vector3d(0, 1, 0));
t3d.invert();

steerTG.setTransform(t3d);
Run Code Online (Sandbox Code Playgroud)

现在我需要在总是可见的场景顶部放置一个叠加层,例如一些文本.我试过以下,但无济于事:

PlatformGeometry pg = new PlatformGeometry();
Text2D text = new Text2D("Text to display", Cell.BLACK, "Verdana", 18, 1);
pg.addChild(text);
simpleUniverse.getViewingPlatform().setPlatformGeometry(pg);
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我根本看不到任何文本.有人可以帮忙吗?

java opengl 3d java-3d

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

当Swing的线程策略被违反时会发生什么?

在过去的几年里,我主要在Eclipse中完成UI开发,在线程访问方面非常保守:任何尝试从UI线程外部更改UI小部件上的属性(例如,颜色,文本)都会引发异常.

我现在正在查看Swing中的一个现有程序,它有一个包含大量自定义小部件的窗口.有一个单独的线程为每个小部件运行一个变异函数,并且变异函数读取某些东西的值(例如,标签颜色和值)并写入一些(例如,更改背景颜色).请注意,没有涉及自定义绘画或类似的东西,只是对它包含的子窗口小部件的一些更改,主要是JLabel.

目前,这是从单独的线程运行,而不是从Swing事件线程运行.这个线程覆盖了所有400个小部件,并在每个小部件上调用mutator.更新似乎正常工作,但GUI没有响应用户输入.

如果我从Swing线程外部运行大约0.4毫秒并将每个调用包装到invokeLater或invokeAndWait中的mutator,那么UI响应速度要快得多.

我想要了解的是:

1)从Swing线程外部进行所有这些调用有时是否合法?

2)对Swing线程的影响是什么?当我从外面调用它时,为什么UI响应性较差?

java performance swing multithreading

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

.NET Regex,只有数字,没有空格

我正在寻找一个只接受数值而不是空格的正则表达式.我目前正在使用:

^(0|[1-9][0-9]*)$
Run Code Online (Sandbox Code Playgroud)

它工作正常,但它接受仅由空格组成的值.这有什么问题?

.net c# regex

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

奇怪的Java通用

这是什么意思?

HashBiMap<Character, Integer> charOcc = HashBiMap.<Character, Integer> create();
Run Code Online (Sandbox Code Playgroud)

java generics

6
推荐指数
2
解决办法
1041
查看次数

Java并发 - 应该阻止还是产生?

我有多个线程,每个线程都有自己的专用并发队列,他们所做的就是运行无限循环从中检索消息.可能会发生其中一个队列在一段时间内(可能是几秒钟)没有收到消息,而且它们也可能会突然发生并且需要快速处理.

我想知道在第一种情况下最适合做什么:使用阻塞队列并阻塞线程,直到我有更多输入或执行Thread.yield()?

我希望在给定时间尽可能多的CPU资源可用,因为并发线程的数量可能会随着时间的推移而增加,但我也不希望消息处理落后,因为无法保证线程何时在执行yield()时将被重新安排执行.我知道硬件,操作系统和其他因素在这里发挥了重要作用,但是将它放在一边,从Java(JVM?)的角度来看它,最优化的是什么?

java concurrency multithreading

6
推荐指数
2
解决办法
653
查看次数

Visual Server数据库项目数据运动脚本在不同版本的数据库上运行

我们一直在使用Visual Studio数据库项目来维护项目的当前架构,这对于我们在将数据库架构引入新开发机器方面效果很好,但我们还没有用它来升级环境.以前我们使用迁移脚本将您从初始版本带到下一版本,依此类推,直到您处于当前版本,但现在我们希望利用数据库项目的强大功能.

我最近读了Barclay Hill的两篇帖子

在部署期间管理数据运动(第1部分)
在部署期间管理数据运动(第2部分)

其中介绍了从一个版本转到另一个版本时如何进行部署前后脚本,我们已经习惯了很好的效果,但是我现在陷入了一些我无法解决的问题,并感到我错过了.我们有两个不同版本的数据库,但迁移脚本不适用于两者中的较旧版本.以下是我们场景的简化版本.

脚本

版本1


1 ColumnABC CHAR(1)

版本2

表1
ColumnXYZ INT

从版本1到版本2的数据移动

预部署脚本检查数据库所处的版本,如果版本为1,则将ColumnABC中的数据放入临时表中.

部署后脚本检查我们现在是否为版本2,并检查是否存在在预部署脚本中创建的临时表,并在将char转换为int后将其放入新列ColumnXYZ中.

版本3

表1
Column123 INT

当我们将数据库从版本1升级到版本2然后升级到版本3时,一切正常.但是,如果我们在版本1上有一个数据库并希望跳转到版本3,则部署后脚本将失败,因为没有ColumnXYZ,因为它现在是Column123.

在旧的迁移方法中,这不会是一个问题,因为部署逐个遍历每个版本,但这不是数据库项目的工作方式.还有其他人经历过这个吗?你是如何处理它并让我错过了一些明显的东西?

sql-server data-migration database-project visual-studio-2010

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