【问题标题】:How to change the content Pane of a JFrame with a slide-in or fade-in effect如何使用滑入或淡入效果更改 JFrame 的内容窗格
【发布时间】:2013-11-15 09:22:57
【问题描述】:

我有两个 JPanel ab。默认情况下,a 设置为 ContentPane。Jpanel a 上有一个按钮,点击后将 contentPane 更改为面板 b。但我想要它面板“b”平滑地滑入或淡入,而不是突然变化。

这是代码(如有必要)

class GUI extends JFrame implements ActionListener
{
    JPanel a,b;
    JButton button;
    GUI()
    {
        super("Sliding Layout");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);

        button=new JButton("Slide");
        button.addActionListener(this);

        a=new JPanel();
        a.setBackground(Color.RED);
        a.add(button);

        b=new JPanel();
        b.setBackground(Color.GREEN);
        b.add(new JLabel("New Content Pane"));
        setSize(800,400);
        setContentPane(a);
    }
    public void actionPerformed(ActionEvent e)
    {
        button.setText("Changed");
        //what should I do here to change the contentPane to panel 'b' with green color 
        //with either slide-in-from -right or fade-in effect?
    }
}

搜索后我发现 Universal Tween EngineSliding Layout 是两个可能的选项。但是我认为 Sliding Layout 是基于更改网格单元格但我想更改整个 contentPane.So Tween Engine 是选项,但我试图理解大约一个小时但没有成功。

我已将罐子附加到我的项目中。你们中的任何人都可以提供代码 sn-p 或确切的教程。 提前致谢。

【问题讨论】:

    标签: java swing jpanel sliding


    【解决方案1】:

    您可以使用这种http://java-sl.com/tip_slider.html 方法。它基于CardLayout 扩展。

    【讨论】:

    • :正是我想要的。但仍在等待与 Tween Engine 相关的答案,因为它提供了更多选项和效果。 +1
    • 但问题是我想我必须始终保留这些按钮。如果我想从另一个页面进入主页怎么办。
    • 您可以在需要时再添加一张卡片并滑动到新的卡片。
    • 我在这里找到了另一种类似的方法stackoverflow.com/questions/11283554/slide-effect-with-jpanel。如果假设我有包含图像和其他组件的复杂面板,则使用这种方法会产生闪烁。
    猜你喜欢
    • 1970-01-01
    • 2013-01-29
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    相关资源
    最近更新 更多