gpt4 book ai didi

java - 如何创建边框颜色样式面板?

转载 作者:行者123 更新时间:2023-12-02 10:28:58 25 4
gpt4 key购买 nike

我正在尝试为椭圆形创建 Canvas ,并且希望它与主要 JFrame 颜色不同。到目前为止,在面板上使用 setSize 不起作用,它最终创建了一个我无法绘制的小盒子。这是我想要的面板设计,白色- 彩色部分作为主框架。

面板设计

正如我所说,使用所有三种布局模式(BorderFlowGrid)只会在框架的中上部。这是我使用的代码。

如何创建与上面发布的图像类似的面板设计?

    setTitle("Oval Shape Mover");
setSize(500, 200);
setLayout(new BorderLayout());
JPanel mainpanel, panel1, panel2;

mainpanel = new JPanel();
panel1 = new JPanel();
panel2 = new JPanel();

panel1.setBackground(Color.YELLOW);
mainpanel.add(panel1, BorderLayout.CENTER);
mainpanel.add(panel2);
add(mainpanel);
setVisible(true);

最佳答案

用于制作 Java Swing GUI 的布局通常会更多地遵循首选大小而不是大小。话虽如此,自定义呈现的组件应该覆盖(而不是设置)getPreferredSize()

此示例通过使用 JLabel 显示图标和空边框来填充 GUI 来建议首选尺寸。

enter image description here

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

public class RedDotLayout {

private JComponent ui = null;
String urlToRedCircle = "/image/wCF8S.png";

RedDotLayout() {
try {
initUI();
} catch (MalformedURLException ex) {
ex.printStackTrace();
}
}

public final void initUI() throws MalformedURLException {
ui = new JPanel(new BorderLayout());
ui.setBackground(Color.YELLOW);
ui.setBorder(new LineBorder(Color.BLACK, 2));

JLabel label = new JLabel(new ImageIcon(new URL(urlToRedCircle)));
label.setBorder(new CompoundBorder(
new LineBorder(Color.GREEN.darker(), 2),
new EmptyBorder(20, 200, 20, 200)));
ui.add(label, BorderLayout.CENTER);

JPanel bottomPanel = new JPanel();
bottomPanel.setBackground(Color.WHITE);
bottomPanel.setBorder(new EmptyBorder(30, 50, 30, 50));
ui.add(bottomPanel, BorderLayout.PAGE_END);
}

public JComponent getUI() {
return ui;
}

public static void main(String[] args) {
Runnable r = () -> {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception useDefault) {
}
RedDotLayout o = new RedDotLayout();

JFrame f = new JFrame(o.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationByPlatform(true);

f.setContentPane(o.getUI());
f.pack();
f.setMinimumSize(f.getSize());

f.setVisible(true);
};
SwingUtilities.invokeLater(r);
}
}

关于java - 如何创建边框颜色样式面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53718848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com