小编Jör*_*ann的帖子

JTree:如何获取所有项目的文本?

我想以格式获取JTree的文本:

root
  sudir1
    node1
    node2
  subdir2
    node3
    node4
Run Code Online (Sandbox Code Playgroud)

可能吗?

我写了一些代码

public static String getLastSelectedText(JTree tree) {
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
    if (node == null) return null;
    return node.getUserObject().toString();
}
Run Code Online (Sandbox Code Playgroud)

但它只获得选定的组件文本.

我想扩展树和处理所有节点,但也许这是个坏主意.

java swing text jtree

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

将生成的构建文件添加到classpath

在构建期间,我通过包含构建信息的maven属性插件(properties-maven-plugin)生成build.properties文件.

将此文件包含在生成的jar中的最佳方法是什么?我不想把它放到src/main/resources目录中,因为这会污染我的默认资源目录.

是否没有"生成资源"目录,因为有源?

java maven-2

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

JAXB:将单独的日期和时间元素映射到一个属性

我正在使用如下所示的XML结构:

<ROOT>
    <ELEM_A>
        <A_DATE>20100825</A_DATE>
        <A_TIME>141500</A_TIME>
        <!-- other elements, maybe also other or date/time combinations -->
        <STRING>ABC</STRING>
    <ELEM_A>
    <ELEM_B>
        <B_DATE>20100825</B_DATE>
        <B_TIME>153000</B_TIME>
        <NUM>123</NUM>
        <C_DATE>20100825</C_DATE>
        <C_TIME>154500</C_TIME>
    </ELEM_B>
</ROOT>
Run Code Online (Sandbox Code Playgroud)

我想将日期和时间映射到我的bean中的单个Date或Calendar属性.这可能是使用jaxb注释吗?该类javax.xml.bind.annotation.adapters.XmlAdapter似乎可以做到这一点,但我不得不承认我并不完全理解它的javadoc.

解决方法是为日期和时间字符串创建其他setter,以便在Calendar属性中设置相应的值,如下所示:

private Calendar calendar;

public void setDate(String date) {
    if (calendar == null) {
        calendar = new GregorianCalendar();
    }
    calendar.set(YEAR, Integer.parseIn(date.substring(0, 4)));
    calendar.set(MONTH, Integer.parseIn(date.substring(4, 6))-1);
    calendar.set(DAY_OF_MONTH, Integer.parseIn(date.substring(6, 8)));
}

// Similar code for setTime
Run Code Online (Sandbox Code Playgroud)

问题(除了附加代码)是我不能总是保证日期在时间值之前设置,但我想不出一个具体的例子,这可能会给出结果.

可以理解基于注释的解决方案的任何示例或上述代码的改进/反例.

编辑:我接受了Blaise Doughan给出的第二个答案,但修改了他的DateAttributeTransformer更灵活,并且不希望字段名称包含字符串"DATE".字段名称取自字段上的XmlWriterTransformer注释:

@Override
public Object buildAttributeValue(Record record, …
Run Code Online (Sandbox Code Playgroud)

java calendar jaxb

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

Java TextField getText()返回上一个字符串值

我有Java Textfield的问题,当我覆盖JTextField中的所有文本并立即输入新文本(不传递退格)到JTextField,然后我使用函数getText()我得到前一个字符串而不是当前字符串.请帮忙解决一些问题.提前致谢.

java swing textfield

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

OpenEJB - 为JUnit配置数据源

我有正确配置OpenEJB 3.1.3数据源的问题.我尝试配置连接到postgres db,但是我调试测试我得到默认的hsql连接参数.

这是我的测试类:

@RunWith(ApplicationComposer.class)
public class OpenEJBTest {
    @EJB
    Files fb;

    @Test
    public void testSth() {
        List<UploadSession> uploadNotFinishedSessions = fb.getUploadNotFinishedSessions();
    }

    @Module
    public EjbJar beans() {
        EjbJar ejbJar = new EjbJar("beans");
        ejbJar.addEnterpriseBean(new StatelessBean(FilesBean.class));
        ejbJar.addEnterpriseBean(new StatelessBean(FilesUtilBean.class));
        ejbJar.addEnterpriseBean(new StatelessBean(ServerFilesBean.class));
        ejbJar.addEnterpriseBean(new StatelessBean(UserUtilBean.class));
        return ejbJar;
    }

    @Module
    public PersistenceUnit persistence() {
        PersistenceUnit unit = new PersistenceUnit("postgresPU", HibernatePersistence.class.getName());
        String simpleXml = SimpleXmlUtil.toSimpleXml(unit);
        System.out.println(simpleXml);
        unit.setJtaDataSource("PostgresDS");
        unit.setNonJtaDataSource("PostgresDSUnmanaged");
        return unit;
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过了:

  1. 将jndi.properties添加到classpath:
postgresPU=new://Resource?type=DataSource
postgresPU.JdbcDriver=org.postgresql.Driver
postgresPU.JdbcUrl=jdbc:postgresql:/localhost:5433/pdb
postgresPU.JtaManaged=true
postgresPU.DefaultAutoCommit=false
postgresPU.UserName=...
Run Code Online (Sandbox Code Playgroud)
  1. 通过openejb.xml配置数据源(位于类路径上)
<Resource id="PostgresDS" type="DataSource">
  JdbcDriver  org.postgresql.Driver
  JdbcUrl …
Run Code Online (Sandbox Code Playgroud)

persistence java-ee openejb

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

黄瓜中的Lexing错误是什么?

我试图运行一个简单的Feature文件,但我得到的异常如下:线程"main"中的异常cucumber.runtime.CucumberException:解析特征文件时出错.

引起的原因是:gherkin.lexer.LexingError:Lexing错误

我试图参数化一个When语句并获得此异常:

Scenario: Login to Gmail

  Given User is on Gmail login page
  When User enters <userName> and <pwd>
  And Clicks on login button
  Then User should redirect to home page

  scenario outline(tried Examples as well but didn't worked): 
  |userName   | pwd |
  |ravivani10 | abc |
Run Code Online (Sandbox Code Playgroud)

cucumber

4
推荐指数
3
解决办法
2万
查看次数

在com.sun.codemodel中使用泛型

使用com.sun.codemodel,我想生成一个通用的LinkedList字段.我可以使用以下代码创建一个原始字段:

JDefinedClass masterClass;
String detailName;
JDefinedClass detailClass;
JFieldVar detailField = masterClass.field(JMod.PRIVATE, LinkedList.class, detailName);
Run Code Online (Sandbox Code Playgroud)

但是我找不到用通用类型创建LinkedList的方法detailClass.

java code-generation sun-codemodel

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

Java .getText与Hard Coded String不返回相同的结果

我完全被这个困扰了...

如果我使用以下内容调用以下函数:

搜索(SearchTextField.getText()); //(输入玻璃纤维)

搜索( "玻璃纤维"); //硬编码

我得到以下结果:

玻璃纤维10不在这里

发现玻璃纤维10串!

相同的String传递的长度相同,结果不同.怎么会这样?是的我在==的两边修剪它没有运气.

我在失去理智,任何帮助都会受到赞赏.

Test[] array = new Test[3];
array[0] = new RowBoat("Wood", "Oars", 10);
array[1] = new PowerBoat("Fiberglass", "Outboard", 35);
array[2] = new SailBoat("Composite", "Sail", 40);




    public void Search(String searchString) {

    boolean found = false;
    System.out.print(searchString + " " + searchString.length() + " ");

    for (int i = 0; i < array.length; i++) {

        if (searchString == array[i].getBoatMaterial()) {
            found = true;
            break;
        }
    }
    if (found) {
        System.out.println("String found!");
    } …
Run Code Online (Sandbox Code Playgroud)

java arrays swing

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