小编Mik*_*rin的帖子

将Intellij IDEA中的代码样式设置导入NetBeans IDE

几年前有一个类似的问题: 我可以将代码方式导入Netbeans吗?

我想知道sutiation是否已经改变了?

我没有找到将代码样式设置(带有代码样式设置的单独XML文件)导入NetBeans IDE的方法.NetBeans设置导入/导出功能似乎忽略了代码样式设置.

java netbeans intellij-idea

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

在加载时部分替换WebView内容

我想要做的是用我自己的HTML内容替换网页HTML内容的一些部分(当前正在WebView引擎中加载).

作为一个简单的例子 - 我想将每个加载的页面主体的背景颜色替换为RED.意思是我需要用我自己的值添加或替换现有的body bgcolor属性.我该怎么做才能实现这一目标?

以下是基于JavaFX WebView组件的基本浏览器代码:

public class BrowserTest extends Application
{
    public static void main ( String[] args )
    {
        launch ( args );
    }

    public void start ( Stage stage )
    {
        stage.setTitle ( "WebView" );

        Browser browser = new Browser ();
        browser.load ( "http://google.com" );

        Scene scene = new Scene ( browser );
        stage.setScene ( scene );

        stage.show ();
    }

    public class Browser extends Region
    {
        final WebView browser;
        final WebEngine webEngine;

        public Browser ()
        { …
Run Code Online (Sandbox Code Playgroud)

java javafx webview

8
推荐指数
1
解决办法
3743
查看次数

JScrollPane - 滚动时的视觉故障

在滚动时,有一些关于JScrollPane中类似故障的主题:

但他们缺乏SSCCE和案件的一些解释,所以我将添加缺少的东西.

首先,这是一个在纯Swing上编写的小例子,没有使用第三方代码:

public class ScrollGlitchExample extends JFrame
{
    public ScrollGlitchExample () throws HeadlessException
    {
        super ();

        final JPanel top = new JPanel ();
        top.setPreferredSize ( new Dimension ( 300, 50 ) );
        top.setBorder ( BorderFactory.createLineBorder ( Color.BLACK ) );
        add ( top, BorderLayout.NORTH );

        final JPanel panel = new JPanel ( new GridLayout ( 500, 1 ) );
        for ( int i = 0; i < 500; i++ )
        {
            panel.add ( new JButton ( …
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane

6
推荐指数
1
解决办法
1535
查看次数

Swing 应用程序初始化和加载屏幕方法

我制作了很多不同的 Swing 应用程序,它们的加载时间通常在几秒到几分钟之间变化,具体取决于应用程序 UI/数据大小。此外,在某些情况下,应用程序数据加载与 UI 加载混合。

几秒钟的加载时间不是问题,但是当它超过 10 秒时 - 很明显应该显示某种加载屏幕,直到 UI/数据完全初始化。

您通常会做什么 - 首先创建某种加载屏幕(例如,带有徽标的窗口和一些在应用程序加载时正在更新的标签),然后从应用程序中的各种加载“点”更新它。

问题是 - 应用程序通常在排队进入 EDT 的单个调用中加载,并且很难将其分成对 EDT 的多次调用而不会使应用程序的代码复杂化。因此,由于应用程序加载是在排队到 EDT 的单个调用中执行的,因此您根本无法正确更新加载屏幕 - 由于 EDT 忙于加载应用程序,因此在应用程序初始化之前不会显示更新。

因此,为了在某些情况下实现加载屏幕,我已将应用程序 UI 初始化移到 EDT 之外,并将它们设计为在执行加载时不会执行任何 UI 更新内容。应用程序的框架显示和所有应用程序 UI 操作仍将在 EDT 中执行。这通常不太好,但经过大量测试和查看 Swing 代码后,我确信即使在大型应用程序中它也不会导致任何问题。尽管如此,即使它不会引起任何问题,这通常也不是一件好事。

所以问题是:在 EDT 中保持应用程序初始化的同时,可以使用哪些方法来正确显示和更新应用程序加载屏幕?

希望它不是太宽泛。

这是一个展示“坏”方法的“虚拟”应用程序:

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

public class DummyApplication extends JFrame
{
    private static JDialog loadingDialog;
    private static JLabel loadingProgress;

    public DummyApplication ()
    {
        super ( "Dummy application" );

        dummyProgressUpdate ( "Loading content...", 3000 ); …
Run Code Online (Sandbox Code Playgroud)

java swing event-dispatch-thread

6
推荐指数
1
解决办法
2096
查看次数

恢复展开/折叠的树节点状态

我正在使用树状态(扩展/选定节点)保存并创建了一个可以保存和恢复节点状态的实用程序类.它工作正常.

但是仍然存在JTree本身的一个问题 - 当用户正在使用一些JTree实例(扩展/折叠节点)时,可能存在某些节点(隐藏在另一个折叠节点下)被扩展的情况.没什么特别的 - 这很好.

JTree将扩展/折叠节点的记录保存在单独的expandedStateHashtable中,使用节点路径作为键,布尔值作为扩展状态值.因此,当折叠的父节点下的展开节点将变为可见时,它仍将被展开,因为在expandedStateHashtable中有true值的记录.

在屏幕截图中解释的情况...
1.展开root并在root下展开一些节点("glassfish4"文件夹):
在此输入图像描述
2.折叠根:
在此输入图像描述
3.再次展开root,我们仍然看到子节点("glassfish4"文件夹)已展开:
在此输入图像描述

想象一下,我在屏幕截图#2时刻保存了树状态,当root崩溃时 - 问题是如果我想恢复所有树节点状态(即使是隐藏的状态),我也无法扩展另一个折叠节点下的节点,因为这将强制所有父节点展开.此外,我无法访问expandedStateHashtable直接在其中更改扩展状态,因为它在JTree中被声明为私有,并且没有很好的方法来访问它.所以我无法完全重现初始树状态.

所以我能做的是:

  1. 通过反射强制访问Hashtable - 真的很糟糕
  2. 重写JTree节点扩展逻辑 - 这也是一个坏主意
  3. 首先恢复所有展开状态,然后恢复所有折叠状态 - 这将迫使树进行额外的无意义重绘和大量额外渲染,这是一个非常糟糕的解决方法,我不想使用

也许我错过了别的什么?

所以基本上问题是:
是否有任何其他方法来扩展子节点而不会导致父节点扩展?

您可以在下面找到我用来保存/恢复树状态的几个类.

只需调用TreeUtils.getTreeState(tree)以检索JTree状态并TreeUtils.setTreeState(tree,treeState)恢复JTree状态.请注意,树必须使用UniqueNode,否则这些方法将抛出ClassCastException - 如果您有自己的节点扩展DefaultMutableTreeNode,则可以简单地将DefaultMutableTreeNode替换为UniqueNode.

UniqueNode.java - 具有自己唯一ID的简单节点

public class UniqueNode extends DefaultMutableTreeNode implements Serializable
{
    /**
     * Prefix for node ID.
     */
    private static final String ID_PREFIX = "UN";

    /**
     * Unique node ID.
     */
    protected String id;

    /**
     * Costructs …
Run Code Online (Sandbox Code Playgroud)

java swing jtree expansion

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

寻找 Swing 文本 AA 属性替换

每个人都知道使用专有 API 是一件非常糟糕的事情。在几乎所有情况下,您都可以用自己的实现或一些其他库替换该 API。

几乎...

在这种情况下,您找不到任何替代方案:

table.put ( SwingUtilities2.AA_TEXT_PROPERTY_KEY, SwingUtilities2.AATextInfo.getAATextInfo ( true ) );
Run Code Online (Sandbox Code Playgroud)

这行代码将正确的文本抗锯齿设置放入 L&F 默认表中。如果您不使用这些设置,您将在任何文本组件中渲染某些特定符号时遇到大量问题(例如泰语 - “??????????????????????”,或阿拉伯语 - “????? ???? ?????”)。

它不能被其他东西替换,因为当涉及文本渲染时,在 Swing 架构中使用了 AATextInfo 的实例(是的,正是那个类,而不是其他东西),外观和感觉只是将该实例添加到默认值中,以便组件可以使用它。

所以这就是我必须决定的重点 - 要么在我的 L&F 中使用非常糟糕的泰语/阿拉伯语/其他字体渲染,要么使用该死的专有 API。

正如您可能知道的那样 - 警告如下:

XXX 是 Sun 专有的 API,可能会在将来的版本中删除

无法抑制:http : //bugs.sun.com/bugdatabase/view_bug.do?bug_id=6476630
嗯,这实际上是一个合理的限制,所以它不是问题。

问题是 - 为什么我不能用别的东西代替那个该死的东西?
也许我错过了什么?

当然,只有在您尝试创建自己的 L&F 时才会出现问题,否则您将永远不需要在任何地方使用该东西。

所以问题是:
该渲染功能是否有任何替代/解决方法?

java swing

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

如果我们在ap标签内放置一个div,Jquery html()方法不起作用?

这是我的HTML:

  <div class="accor">
  </div>
  <div class="accordionContentTwoCol">
   <p class="noEdit">
     <div>   name : </div>
  </p>
 <div>
Run Code Online (Sandbox Code Playgroud)

我需要找到accordionContentTwoColdiv的html内容(我只能访问accor).
如果我尝试在accordionContentTwoCol div中打印html,如下所示:

alert("html inside accordionContentTwoCol :"+$('.accor').next().html());
Run Code Online (Sandbox Code Playgroud)

它提供如下输出:
在此输入图像描述

虽然HTML里面accordionContentTwoCol是:

<p class="noEdit">
         <div>   name : </div>
</p>
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

html javascript jquery

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

弹簧行为模拟

基本上,我想模拟绘制图像上的弹簧行为.我想让它通过几次迭代来上下缩放(就像在弹簧上修复一样).

我在网上找到的所有例子都导致了这个类 - FloatSpring.java

它应该提供所需的计算,将A点移动到B点,应用类似弹簧的效果,这取决于各种FloatSpring类设置.问题是我没有找到一个明确的例子如何正确使用它.

我做了这个小例子来测试FloatSpring:

public static void main ( String[] args )
{
    // Some image to bounce
    final ImageIcon icon =
            new ImageIcon ( WebProgressOverlayExample.class.getResource ( "icons/ava1.jpg" ) );

    // Component to paint image on
    JComponent spring = new JComponent ()
    {
        // Zoom value (1f = 100% = normal size)
        float zoom = 1f;

        {
            // Basic spring settings
            final FloatSpring fs = new FloatSpring ( 100 );
            fs.setPosition ( zoom );

            // Animation …
Run Code Online (Sandbox Code Playgroud)

java swing timer paintcomponent imageicon

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