小编kle*_*tra的帖子

据说JLabel setText()方法是线程安全的,但它确保了可见性

查看JLabel的源代码我关注文本字段的可见性.我提取了必要部分来设置文本字段并检索oldValue.我认为如果String文本字段未声明为volatile,则可见性存在危险,因为firePropertyChange可能看不到之前由另一个线程保存的文本字段中检索到的oldValue.我是对的,还是我错过了什么?请注意,这不是讨论SwingUtility.

public class JLabel extends JComponent implements SwingConstants, Accessible {
    ...

    private String text = "";         // "" rather than null, for BeanBox

    ...

    public void setText(String text) {

        String oldAccessibleName = null;
        if (accessibleContext != null) {
            oldAccessibleName = accessibleContext.getAccessibleName();
        }

        String oldValue = this.text;
        this.text = text;
        firePropertyChange("text", oldValue, text);

    ...
Run Code Online (Sandbox Code Playgroud)

提前谢谢了.

java swing multithreading visibility volatile

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

Hibernate很难使用MySQL创建表

我正在用JavaFX,Maven,Hibernate等在体系结构客户端服务器中进行学校项目,我对单独实施Hibernate(没有Spring)有很大的疑问。我不确定配置,依赖关系或MySQL问题:/

hibernate.cfg.xml

<?xml version = "1.0" encoding = "utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
    <session-factory>


        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/carrental</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password"></property>

        <property name="connection.pool_size">10</property>

        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <property name="current_session_context_class">thread</property>

        <property name="show_sql">true</property>
        <property name="format_sql">true</property>

        <property name="hbm2ddl.auto">update</property>


        <!-- List of mapping files -->
        <mapping class="model.User" />



    </session-factory> </hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

模型用户

package model;

import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.io.Serializable;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

@Entity
public class User implements Serializable {
    @Id
    @GeneratedValue
    private Integer userId;
    private String login; …
Run Code Online (Sandbox Code Playgroud)

java mysql hibernate

0
推荐指数
2
解决办法
5878
查看次数

Java txt 文件作为数据库

我正在尝试将文本文件用作数据库,但遇到了问题。问题是当我在文本文件上写入用户信息时,当我添加第二个用户时它不会写入下一行。它只是覆盖旧的。如何添加 writeToNextLine 之类的东西?

public void addAdmin(String adminName, String adminSurName, String adminUserName, String adminPassword) throws IOException {
    BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\Users\\cemon\\IdeaProjects\\Library\\src\\database\\AdminUserData.txt"));
    writer.write(adminName + " " + adminSurName);
    writer.newLine();
    writer.write(adminUserName + " " + adminPassword);
    writer.newLine();
    writer.close();
}
Run Code Online (Sandbox Code Playgroud)

java database

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

将输入从一帧传递到另一帧(JAVA)

这是事情......

我有2个GUI程序.
一个菜单程序,基本上是一个带有食物项按钮的框架,点击时按钮打开另一个程序,一个输入数量程序,一个带有文本字段的框架,数字按钮,取消和确认按钮.菜单程序将从输入数量程序访问用户确认的数量,以存储在矢量中,这样每次用户想要订购其他食品时,他只需点击另一个按钮并重复该过程.

现在我编写了大部分代码并且除了一件事之外一切都正常工作,输入数量程序返回的值有这个延迟的事情.

这就是我一步一步做的事情:

1)单击"菜单"中的食物项,打开"输入数量"窗口.
2)我输入了我想要的数字,它正确地显示在文本框中.
3)我按下确认哪个会做3件事,首先它将文本字段的值存储到变量中,第二个将调用dispose()方法,第三个是显示变量值的print语句(用于测试目的).
4)菜单程序然后检查用户是否已经按下Input程序中的Confirm按钮,如果为true,它将调用Input程序中名为getQuantity()的方法,该方法返回变量'quantity'的值并将其存储在矢量.
5)之后执行另一个print语句以检查传递的值是否正确,然后调用方法print()以显示已订购的项目名称及其记录的数量.

以下是GUI的屏幕截图,代码将在其下方.

菜单GUI
第一顺序 最后的订单

输入数量程序中CONFIRM BUTTON的ActionPerformed方法:

private void ConfirmButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
    // TODO add your handling code here:
    confirmed = true;
    q= textField.getText().toString();
    quantity =Integer.parseInt(q) ;
    System.out.println("getQTY method inside Input Quantity Interface:" +getQuantity());
    System.out.println("Quantity from confirmButton in Input Quantity Interface actionPerformed: "+quantity);

    //getQuantity();
}                            
Run Code Online (Sandbox Code Playgroud)

菜单程序中菜单项按钮的动作监听类别执行上述步骤2:

class f implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) 
    {
         inputGUI.setVisible(true);
         int  q =0;

          q=inputGUI.getQuantity(); //call method to get value from Input Program

          System.out.println("Quantity inside Menu actionperformed …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing

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

ubuntu使用什么样的外观和感觉?

ubuntu使用什么外观(11或更高)?我想在将在Windows上运行的swing应用程序中使用相同的内容.我在哪里可以找到那个lnf的罐子?

java linux swing look-and-feel

-1
推荐指数
1
解决办法
4689
查看次数

在JTextArea而不是控制台上显示数据

我想要一个可以完全工作而不是控制台的JTextArea 但我不知道该怎么做!

谢谢

java console swing system jtextarea

-1
推荐指数
1
解决办法
8832
查看次数

提供Java类名称,我想返回其参数和方法

嘿,我想实现以下功能:

  • 用户提供Java类名.
  • 此功能将返回此类具有的所有方法签名和参数.

最简单的方法是什么?

注意:解析txt文件是可以接受的,但我正在寻找更快的方法.

java

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

如何排序ArrayLists?

我有一些列表包含DataTime类型的元素(Joda-time).我怎样才能按日期对它们进行排序?如果有人给出了这个例子的链接,那将会很棒......

java sorting datetime

-2
推荐指数
2
解决办法
1136
查看次数