相关疑难解决方法(0)

Java GUI框架.选择什么?Swing,SWT,AWT,SwingX,JGoodies,JavaFX,Apache Pivot?

java有很多gui框架,但是什么被认为是今天的选择框架?

以下是我对不同框架的理解,如果我错了请纠正我.这是一个非常松散定义的问题集,但我仍然认为它对于任何想创建丰富的gui应用程序的人都很有价值.


AWT

是摆动的基础,它表现良好,但缺乏先进的部件.如果您打算创建丰富的应用程序,AWT可能不是可行的方法.但是对于不需要丰富用户界面的小型gui应用程序.这可能非常适合,因为它是一个久经考验的框架.


摇摆

基于AWT,如前所述.在它的初期,它被认为是缓慢和错误,并导致IBM为Eclipse创建SWT.但是,使用Java 5(或6?),Swing成为构建新应用程序的首选框架.Swing有很多丰富的组件,但在某些方面仍然缺乏.一个例子是没有可以进行排序和过滤/搜索的全功能TreeTable组件.


SWT

由IBM为Eclipse创建,他们似乎认为Swing当时不适合Eclipse.它本身是相当低级的,它通过JNI使用平台的本机小部件.它根本与Swing和AWT无关.然而,他们的API有点笨重而且不直观.它们确实有一些像TreeTable这样的高级组件.(但我不认为他们支持排序和过滤开箱即用).SWT使用一些本机绑定(通过JNI?),互联网上的咆哮是这个框架不应该在今天的项目中使用.(为什么不?)


SwingX

基于Swing,它的使命是为挥杆创造丰富的组件.仍在开发中.(虽然不是很活跃.)有一组非常好的组件,比如TreeTable.但据我所知,TreeTable不支持过滤和排序.但它确实支持突出显示搜索.

请注意,SwingX是组件(AFAIU),它们是现有Swing组件的扩展或组合


JGoodies数据

我一无所知的框架......它的优点和缺点是什么?Jgoodies与其他人的区别是什么?

JGoodies OTOH是关于PLAF和布局的.


JavaFX的

Java/Oracle的最新旗舰产品.承诺成为开发富桌面或Web应用程序的事实标准.


Apache Pivot

它使用Java2D呈现UI,从而最小化Swing和AWT的(IMO,膨胀)遗产的影响.(@Augustus Thoo)

它的主要焦点似乎是RIA(富互联网应用程序),但似乎它也可以应用于桌面应用程序.而作为个人评论,看起来很有趣!我特别喜欢它是一个apache项目.

https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html


Qt Jambi

本机qt库的java包装器,用c/c ++编写.非常强大,广泛使用和接受.有很多GUI组件和易于使用的API.

http://qt-jambi.org/


所以,试着总结一下我要问的一点:

说我想用Java创建一个桌面应用程序,它涉及许多高级组件,我应该选择什么?为什么?

哪些框架应被视为已弃用,哪些框架应被视为遥远未来的框架?

什么是今天的事实标准框架,您使用哪些工具来创建Java gui应用程序?


我可能会后悔问这个,但不管怎么说都不好意思:

据说C#/ .Net有一套易于使用的组件,可以在各个方向上进行弯曲.在调查了不同的java框架之后,我似乎无法对Java说同样的话.为什么是这样?为什么java(世界上使用最广泛的编程语言)没有相同的GUI组件集?

难道只是java已经将gui组件基于更低的级别,并且可以编写我正在寻找的所有这些高级组件,但是如果不是所有的工作,你必须做很多事情吗?

java user-interface swing swt awt

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

SwingUtilities.invokeLater

我的问题与此有关SwingUtilities.invokeLater.我应该什么时候使用它?每次需要更新GUI组件时是否必须使用?它到底是做什么的?是否有替代品,因为它听起来不直观,并添加看似不必要的代码?

java swing multithreading awt event-dispatch-thread

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

请推荐漂亮的Java Swing组件库

我现在正在修改用Java编码的软件的用户界面.现在使用Swing构建界面.我正在寻找一个Java Swing组件库,它应该看起来比原来JComponent的更好.

我已经找到了SlickerBox ; 那里的组件看起来比原件好得多.但是,我不喜欢SlickerBox中组件的颜色,我找不到自定义颜色的方法.我正在寻找一个更好的图书馆.

我很感激你的回答!

java swing look-and-feel

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

如何更改JTextArea中的文本颜色?

我需要知道如何做到这一点:

让我们说:我有一个JTextArea像这样的代码:

LOAD R1, 1
DEC R1
STORE M, R1
ADD R4, R1,8
Run Code Online (Sandbox Code Playgroud)

我想改变的颜色LOAD,DEC,STOREADD以颜色为蓝色 R1,R4以色绿 M到红号橙色

如何更改此文字的颜色?这些文本来自记事本或可以直接键入文本区域.

java swing colors jtextarea jtextcomponent

30
推荐指数
3
解决办法
8万
查看次数

从右到左设置JFrame Orientation!

为了将我的JFrame从左到右对齐,我使用:

setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
Run Code Online (Sandbox Code Playgroud)

但这只有在我使用JFrame的以下样式(装饰)时才有效:

public class RightToLeft {
  public static void main(String []args){
    javax.swing.SwingUtilities.invokeLater(new Runnable(){
      public void run() {
        try { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); }
        catch (Exception e) { e.printStackTrace(); }
        JFrame.setDefaultLookAndFeelDecorated(true);
        JFrame frame = new JFrame("??????? ???????");
        frame.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        frame.setSize(300,300);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setVisible(true);
      }
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但我希望它没有这种装饰.如何解决这个问题?

编辑:

@mre我想要一个像这样的JFrame:

在此输入图像描述

EDIT2:

我真的需要修复这个问题,所以我提供500+给谁一个像这样的JFrame(使用WindowsLookAndFeel):

在此输入图像描述

java swing arabic jframe orientation

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

如何更改JTabbedPane选项卡的形状?

我想改变一个标签的形状JTabbedPane.使用setTabComponentAt(0, someComponent);不会更改选项卡的外部,这是一个左上角对角线的矩形.改变形状可以做些什么?

java swing jtabbedpane

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

定制设计JScollPane Java Swing

我需要为我的所有scrollpanes设计这个滚动条:

在此输入图像描述

使用Java Swing.我正在使用Netbeans IDE.什么是最简单的解决方案?

非常感谢你.

问候

java customization swing scrollbar scrollpane

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

透明JPanel

我想创建一个半透明的JPanel.我通过简单地使用颜色构造函数的RGBA值来完成它,但问题是当我使用事件处理没有正确地进行操作时.我的要求是一个半透明的Jpanel,当鼠标进入它时,此面板的边框变得可见,如果鼠标退出边框,则不可见.我通过遵循代码完成了这个,但问题是它不能正常工作的透明背景(RGBA),但它适用于RGB颜色.

import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;

public class MDCW extends JFrame {

      private JPanel contentPane;

     /**
     * Launch the application.
     */
     public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MDCW frame = new MDCW();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public MDCW() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 1013, 551);
        contentPane = new JPanel();
        contentPane.setBackground(new Color(0, 139, 139));
        contentPane.setBorder(new EmptyBorder(5, 5, …
Run Code Online (Sandbox Code Playgroud)

java swing jframe

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

是否有基于平面设计概念的Java外观?

我有5个用于工程的java系统,其UI是使用Swing开发的.

大约10年前,我们开始开发这些系统,每个系统都有大约300K行代码.所有这些系统都处于生产环境中.

关于这些系统的用户界面困扰我们的一个问题是,与手机,平板电脑和网站的大型可用UI相比,它们看起来很旧.

手机,平板电脑和网站UI有什么共同之处?它们的外观基于扁平设计理念.

因此,我们正在开展一项研究,寻找低成本替代方案,为我们的系统提供面向平面设计的现代外观.

我们想到的第一个选项是搜索基于平面设计概念实现的java L&F.但我们没有找到一个.

有没有人知道是否有基于Java的外观和感觉,特别是平面设计概念?

最好的问候,Cláudio.

java swing look-and-feel

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

在java的好看的进展酒吧

我想知道你是否有人知道如何在Java中显示一个漂亮的进度条,主要是使用Swing,虽然我不介意使用第三方库.

我一直在看JProgressBar教程,但没有一个是指造型吧.阅读API我找到了一个返回ProgressBarUI对象的getUI方法,但是我没有看到很多方法来自定义那个.

我想要的是添加圆角,改变背景和前景色,宽度,长度,通常.

谢谢!

java swing jprogressbar

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