标签: swingutilities

开始挥杆应用程序的最佳实践

启动java swing应用程序的最佳实践方法是什么?也许有另一种方法可以做到这一点.

我想知道我是否必须使用SwingUtilities类来启动应用程序(可能性)(第一种可能性).

public class MyFrame extends JFrame {

public void createAndShowGUI() {
    this.setSize(300, 300);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    // add components and stuff
    this.setVisible(true);
}

public static void main(String[] args) {

    // First possibility
    MyFrame mf = new MyFrame();
    mf.createAndShowGUI();

    // Secound possibility
    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            MyFrame mf = new MyFrame();
            mf.createAndShowGUI();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

}

java swing swingworker swingutilities

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

组件坐标

我正在尝试获得与其父级相关的组件坐标.例如,当我有一个JFrame的大小500×500,其中有一个孩子- 的JPanel -在[50,10]我应该得到[50,10]结果.无论看起来多么简单,我一直都会遇到错误的坐标([0,0][ 3,24 ]).

这是我的JPanel代码:

class MyPanel extends JPanel implements MouseListener { 
    private Component parent;   
    private String strName;

    public MyPanel(Component pr, String name, int w, int h) {
        super();

        parent = pr;
        strName = new String(name);

        this.setLayout(null);
        this.setSize(w, h);
        this.setBackground(Color.WHITE);
        this.addMouseListener(this);

        this.setVisible(true);
    }

    /* MouseListener implementation */
    public void mouseClicked(MouseEvent event) {
            int x = event.getX(); int y = event.getY();
            Point pnt = new Point(SwingUtilities.convertPoint(this, …
Run Code Online (Sandbox Code Playgroud)

java swing point mouse-listeners swingutilities

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

为什么我应该使用单独的线程在JAVA中显示GUI

这个简单的问题让我很困惑.您可以通过设置frames的setVisible属性来显示JAVA GUI应用程序true.但在我在互联网上发现的几乎所有例子中,他们都使用一个单独的线程来做同样的事情.

他们这样做,

SwingUtilities.invokeLater(new Runnable() {

    @Override
    public void run() {
        new Frame().setvisible(true);  //just take the idea of this line
    }
});
Run Code Online (Sandbox Code Playgroud)

我发现这两种方法没有区别.但必须有一些特殊的原因,这就是每个人都这样做的原因.

有人可以解释一下......谢谢!

java swing invokelater runnable swingutilities

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

SwingUtilities.convertPoint()返回负值

我在另一个项目中遇到了这个问题,这个项目复杂的JPanels结构和很多代码.

在那里,我有一个以下片段

Point point = label.getLocation();
Point point2 = SwingUtilities.convertPoint(label.getParent(), point, panel);
Run Code Online (Sandbox Code Playgroud)

在动态选择标签和面板的地方,JLabel应该是JPanel的grand-grand -...- child.

那么为什么问题是在SwingUtilities.convertPoint()源和目的地有子父关系的情况下,在什么情况下可以返回负值?这有可能吗?

此代码演示了负坐标问题,但panel22不是标签的父级.

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Point;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class NegativeLocation {
    public static void main(String[] args) {
        new NegativeLocation();
    }

    public NegativeLocation() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());

                JPanel panel1 = new JPanel() {
                     @Override
                     public Dimension getPreferredSize() {
                         return new …
Run Code Online (Sandbox Code Playgroud)

java swing jlabel jpanel swingutilities

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

访问包含JTable的JScrollpane

我在JScrollpane中有一个JTable.我无权访问JScrollpane变量.但我可以访问JTable.现在我如何使用JTable访问JScrollpane.

For Example -> mytable.getAncestor(...) or something?
Run Code Online (Sandbox Code Playgroud)

java swing jtable jscrollpane swingutilities

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

为什么我需要Swing Utilities以及如何使用它?

这主要是关于我的问题在这里,但我不明白为什么摇摆公用事业需要以及它的用途.我正在设计一个摇摆gui,我不想错过Swing Utilities可能提供的任何东西.也有人可以解释该invokeLater方法的作用及其工作原理.

java swing swingutilities

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

如何在屏幕上找到JTree节点的位置

我想搜索JTree的特定节点并确定其在屏幕上的位置。我的目标是从该节点的左上角开始悬停鼠标,然后在我的JFC中单击鼠标。

谁能帮我这个?可能吗?

java swing jtree mouseevent swingutilities

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

SwingUtilities线程和AWT.EventQueue线程之间的区别

我正在使用Netbeans 7 IDE开发GUI桌面应用程序.当我创建JFrame类时,Netbeans使用

java.awt.EventQueue.invokeLater(new Runnable(){}

启动可运行对象.但我的应用程序也有摆动组件.

我想知道之间的区别

 java.awt.EventQueue threads
Run Code Online (Sandbox Code Playgroud)

SwingUtilities threads
Run Code Online (Sandbox Code Playgroud)

用于GUI应用程序开发.

java swing awt event-queue swingutilities

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

鼠标右键事件

我搜索了这个论坛,但我找不到关于这个主题的很好的解释。和下面的说法有什么不同吗?哪种方式是触发此事件的更好方法?

if (evt.getButton() == 3) 
Run Code Online (Sandbox Code Playgroud)

对比

if (SwingUtilities.isRightMouseButton(evt))
Run Code Online (Sandbox Code Playgroud)

java awt mouseevent mouselistener swingutilities

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

SwingUtilities.invokeLater:问题

我永远不明白SwingUtilities.invokeLater,这就是我一直避免它的原因.但是让Swing Thread安全是非常重要的.好吧请原谅,因为这是我第一次这样做.我试图在一些数据库查询后关闭窗口.所以,据我所知,任何更新UI必须由.处理.这SwingUtilities.invokeLater是我的工作:

主要:

public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new forminsert().setVisible(true);
forminsert f=new forminsert();
    }
    });

    }
  public forminsert() {
    initComponents();
}

public class forminsert extends javax.swing.JFrame {    
private void initComponents() {

    jPanel1 = new javax.swing.JPanel();
    jTextField1 = new javax.swing.JTextField();
    jButton1 = new javax.swing.JButton();
    jButton2 = new javax.swing.JButton();
    jButton3 = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setUndecorated(true);

    jPanel1.setBackground(new java.awt.Color(0, 0, 0));
    jPanel1.setBorder(javax.swing.BorderFactory.createMatteBorder(3, 3, 3, 3, new java.awt.Color(0, 204, 204)));
              /////***REST …
Run Code Online (Sandbox Code Playgroud)

java swing invokelater swingutilities

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