请考虑以下示例.
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."
我怎样才能做到这一点?
相当基本的问题在这里.
基本上我有这样的代码:
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和C#中,它们都有类似System.terminate()的东西.如果我的程序有开放的数据库连接,数据库读取器和数据库命令变量,并且我在catch子句中终止我的程序,数据库资源是否仍然在使用?或者自从我的整个程序刚刚退出以来它们会被自动释放吗?
通常情况下,我应该如何处理这种情况,以确保我总是释放数据库连接,无论是通过正常的程序终止还是意外的程序终止?有什么好的做法?
我已经弄清楚如何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 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)
当我运行上面的代码时,我根本看不到任何文本.有人可以帮忙吗?
在过去的几年里,我主要在Eclipse中完成UI开发,在线程访问方面非常保守:任何尝试从UI线程外部更改UI小部件上的属性(例如,颜色,文本)都会引发异常.
我现在正在查看Swing中的一个现有程序,它有一个包含大量自定义小部件的窗口.有一个单独的线程为每个小部件运行一个变异函数,并且变异函数读取某些东西的值(例如,标签颜色和值)并写入一些(例如,更改背景颜色).请注意,没有涉及自定义绘画或类似的东西,只是对它包含的子窗口小部件的一些更改,主要是JLabel.
目前,这是从单独的线程运行,而不是从Swing事件线程运行.这个线程覆盖了所有400个小部件,并在每个小部件上调用mutator.更新似乎正常工作,但GUI没有响应用户输入.
如果我从Swing线程外部运行大约0.4毫秒并将每个调用包装到invokeLater或invokeAndWait中的mutator,那么UI响应速度要快得多.
我想要了解的是:
1)从Swing线程外部进行所有这些调用有时是否合法?
2)对Swing线程的影响是什么?当我从外面调用它时,为什么UI响应性较差?
我正在寻找一个只接受数值而不是空格的正则表达式.我目前正在使用:
^(0|[1-9][0-9]*)$
Run Code Online (Sandbox Code Playgroud)
它工作正常,但它接受仅由空格组成的值.这有什么问题?
这是什么意思?
HashBiMap<Character, Integer> charOcc = HashBiMap.<Character, Integer> create();
Run Code Online (Sandbox Code Playgroud) 我有多个线程,每个线程都有自己的专用并发队列,他们所做的就是运行无限循环从中检索消息.可能会发生其中一个队列在一段时间内(可能是几秒钟)没有收到消息,而且它们也可能会突然发生并且需要快速处理.
我想知道在第一种情况下最适合做什么:使用阻塞队列并阻塞线程,直到我有更多输入或执行Thread.yield()?
我希望在给定时间尽可能多的CPU资源可用,因为并发线程的数量可能会随着时间的推移而增加,但我也不希望消息处理落后,因为无法保证线程何时在执行yield()时将被重新安排执行.我知道硬件,操作系统和其他因素在这里发挥了重要作用,但是将它放在一边,从Java(JVM?)的角度来看它,最优化的是什么?
我们一直在使用Visual Studio数据库项目来维护项目的当前架构,这对于我们在将数据库架构引入新开发机器方面效果很好,但我们还没有用它来升级环境.以前我们使用迁移脚本将您从初始版本带到下一版本,依此类推,直到您处于当前版本,但现在我们希望利用数据库项目的强大功能.
我最近读了Barclay Hill的两篇帖子
在部署期间管理数据运动(第1部分)
在部署期间管理数据运动(第2部分)
其中介绍了从一个版本转到另一个版本时如何进行部署前后脚本,我们已经习惯了很好的效果,但是我现在陷入了一些我无法解决的问题,并感到我错过了.我们有两个不同版本的数据库,但迁移脚本不适用于两者中的较旧版本.以下是我们场景的简化版本.
表
1 ColumnABC CHAR(1)
表1
ColumnXYZ INT
从版本1到版本2的数据移动
预部署脚本检查数据库所处的版本,如果版本为1,则将ColumnABC中的数据放入临时表中.
部署后脚本检查我们现在是否为版本2,并检查是否存在在预部署脚本中创建的临时表,并在将char转换为int后将其放入新列ColumnXYZ中.
表1
Column123 INT
当我们将数据库从版本1升级到版本2然后升级到版本3时,一切正常.但是,如果我们在版本1上有一个数据库并希望跳转到版本3,则部署后脚本将失败,因为没有ColumnXYZ,因为它现在是Column123.
在旧的迁移方法中,这不会是一个问题,因为部署逐个遍历每个版本,但这不是数据库项目的工作方式.还有其他人经历过这个吗?你是如何处理它并让我错过了一些明显的东西?
sql-server data-migration database-project visual-studio-2010