- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
package test;
nhập javax.swing.*;
nhập java.awt.*;
public class TestWindow extends JFrame{
//------------------------------------------------------------------------------
public static void main(String[] args) {
new TestWindow();
}
//------------------------------------------------------------------------------
public TestWindow(){
setSize(300,300);
this.setUndecorated(true);
add(new Background());
setVisible(true);
}
//------------------------------------------------------------------------------
private class Background extends JPanel{
public Background(){
add(b);
repaint();
}
//------------------------------------------------------------------------------
Bubble b = new Bubble();
@Ghi đè
public void paintComponent(Graphics g){
super.paintComponent(g);
Color c = Color.cyan;
g.setColor(c);
g.fillRect(0, 0,getWidth(), getHeight());
}
//------------------------------------------------------------------------------
private class Bubble extends JPanel{
@Ghi đè
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.green);
g.drawOval(0, 0, Background.this.getWidth(), Background.this.getHeight());
}
}
//------------------------------------------------------------------------------
}
}
目的是绘制一个带有绿色圆圈的青色窗口。稍后我会将组件添加到绿色圆圈中,这样看起来就像有一个带有青色背景的窗口和一个带有组件的绿色圆圈。
然而,输出只是青色背景。没有圈。
我尝试将 XOR 模式设置为青色,但这也不起作用。我嵌套类错了吗?
1 Câu trả lời
主要问题在这里......
public void paintComponent(Graphics g){
super.paintComponent(g);
Color c = Color.cyan;
g.setColor(c);
g.fillRect(0, 0,getWidth(), getHeight());
add(b);
repaint();
}
不仅在你的paint方法中向你的容器添加组件,你还调用了repaint,这一切都会对你不利。
当您的组件出于各种原因需要更新时,重绘管理器会调用 Paint。您永远不应调用任何可能使其无效的方法,否则需要重新绘制组件,这样做会使您陷入 CPU 烧毁的滑坡。
相反。
Background
组件的构造函数中添加您的 Bubble
组件getPreferredSize
方法并提供有用的提示,以便布局管理器了解码件可能实际需要使用多少空间您面临的主要问题(除了糟糕的绘画)是组件报告自己不需要高度或宽度,这意味着当布局管理器来布置它们时,它们实际上是不可见的
làm mới
我建议你看看
复活节彩蛋
为了接受建议和努力,让我给你一点帮助......
我建议您通读代码,返回 Java 文档和教程并尝试弄清楚发生了什么;)
public class CircleControl {
public static void main(String[] args) {
new CircleControl();
}
public CircleControl() {
EventQueue.invokeLater(new Runnable() {
@Ghi đè
công khai void run() {
thử {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new TestPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class TestPane extends JPanel {
public TestPane() {
setLayout(new GridBagLayout());
add(new Bubble());
}
@Ghi đè
public Dimension getPreferredSize() {
return new Dimension(200, 300);
}
@Ghi đè
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g.create();
Color startColor = brighten(Color.CYAN, 0.75f);
Color endColor = brighten(Color.CYAN, 0.5f);
LinearGradientPaint lgp = new LinearGradientPaint(
new Point(0, 0),
new Point(0, getHeight()),
new float[]{0f, 1f},
new Color[]{startColor, endColor});
g2d.setPaint(lgp);
g2d.fill(new Rectangle(getWidth(), getHeight()));
g2d.dispose();
}
}
public class Bubble extends JPanel {
public Bubble() {
Font font = UIManager.getFont("Label.font");
setFont(font.deriveFont(Font.BOLD, 48));
setForeground(Color.WHITE);
setBackground(darken(Color.CYAN, 0.3f));
setOpaque(false);
}
@Ghi đè
public Dimension getPreferredSize() {
return new Dimension(150, 150);
}
@Ghi đè
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g.create();
g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
int x = (getWidth() - 150) / 2;
int y = (getHeight() - 150) / 2;
Color startColor = brighten(getBackground(), 0.05f);
Color endColor = getBackground();
LinearGradientPaint lgp = new LinearGradientPaint(
new Point(x, y),
new Point(x, y + 150),
new float[]{0f, 1f},
new Color[]{startColor, endColor});
g2d.setPaint(lgp);
g2d.fill(new Ellipse2D.Double(x, y, 150, 150));
FontMetrics fm = g2d.getFontMetrics();
x = x + ((150 - fm.stringWidth("22")) / 2);
y = y + ((150 / 2) + fm.getAscent());
g2d.setColor(getForeground());
g2d.drawString("22", x, y);
}
}
public static Color brighten(Color color, double fraction) {
int red = (int) Math.round(Math.min(255, color.getRed() + 255 * fraction));
int green = (int) Math.round(Math.min(255, color.getGreen() + 255 * fraction));
int blue = (int) Math.round(Math.min(255, color.getBlue() + 255 * fraction));
int alpha = color.getAlpha();
return new Color(red, green, blue, alpha);
}
public static Color darken(Color color, double fraction) {
int red = (int) Math.round(Math.max(0, color.getRed() - 255 * fraction));
int green = (int) Math.round(Math.max(0, color.getGreen() - 255 * fraction));
int blue = (int) Math.round(Math.max(0, color.getBlue() - 255 * fraction));
int alpha = color.getAlpha();
return new Color(red, green, blue, alpha);
}
}
关于java - 在 JPanel 中添加 JPanel - 嵌套的 JPanel 不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14907535/
Vì vậy, tôi đã thử thiết lập chiều cao của lớp "nội dung" nhưng có vẻ như không hiệu quả. Tôi rất mới với các DIV lồng nhau và đã thử các cách sửa lỗi tìm thấy trên tìm kiếm của Google nhưng có vẻ không có cách nào hiệu quả. giúp đỡ?
Được rồi, tôi đã tìm kiếm xung quanh nhưng không thể tìm ra câu trả lời cho vấn đề này. Tuy nhiên, tôi cần lồng một View vào bên trong một View khác. Tôi có $layout đang sử dụng default.layout Blade document tôi có
Được rồi, tôi đã tìm kiếm xung quanh nhưng không thể tìm ra câu trả lời cho vấn đề này. Tuy nhiên, tôi cần lồng một View vào bên trong một View khác. Tôi có $layout đang sử dụng default.layout Blade document tôi có
Về cơ bản, câu hỏi của tôi rất đơn giản, nhưng nó đòi hỏi người biết về Struts 1.1 và vẫn còn sử dụng. Mã giả mà tôi đang cố gắng xây dựng trông như thế này: IF element.method1 = true THEN IF element
Tôi đang cố gắng chuyển đổi một câu lệnh IF lồng nhau trong Excel thành ngôn ngữ mã nhưng tôi không chắc mình có làm đúng không và rất mong nhận được sự trợ giúp. Đây là câu lệnh Excel: =IF(D3="Feather",IF(OR(I3>1000,R3=
Nếu chúng ta tạo hai hoặc ba bình luận và trả lời chúng nhiều lần, liên kết Hữu ích sẽ gây ra sự cố khi nhấp vào, nó sẽ thực hiện hành động ng-click trên chỉ mục có cùng số, do đó hiển thị tất cả các văn bản có cùng chỉ mục. Làm thế nào tôi có thể khắc phục vấn đề lồng nhau này để khi tôi nhấp vào liên kết
Tôi đang sử dụng Scala trong dự án của mình và muốn tích hợp với Stripe, nhưng nó chỉ cung cấp Java API. Ví dụ, để tạo một phiên, tôi sử dụng: val params = new util.HashMap[String, Any
Đoạn mã sau có một Div chứa bốn Div nhỏ hơn xếp thành một hàng. Mỗi Div trong bốn Div cũng chứa một Div nhỏ hơn, nhưng Div này không được hiển thị. Tôi đã thử nhiều cách hiển thị và kết hợp vị trí khác nhau để xem div có xuất hiện không. lớpGoa
Tôi có một câu hỏi ở đây, vòng lặp là: for (i=0; i < n; ++i) for (j = 3; j < n; ++j) { ...
Tôi đang cố gắng viết mã để hiển thị các hình dạng có chiều rộng lẻ. Khi hình dạng đã hoàn tất, hãy đặt nó vào bên trong hình dạng bên ngoài. Người dùng có thể nhập các ký tự và số dòng để sử dụng cho hình dạng đó. Tôi muốn tạo một hình dạng và tạo một hình dạng bên ngoài thông qua vòng lặp for. ***** .
$(".globalTabs").each(function(){ var $globalTabs = $(this); var parent = $globalTabs.parent
đóng cửa. Câu hỏi này cần có thông tin chi tiết hoặc rõ ràng. Hiện tại không chấp nhận câu trả lời. Bạn có muốn cải thiện câu hỏi này không? Thêm chi tiết và làm rõ câu hỏi bằng cách chỉnh sửa bài đăng này. Đã đóng 9 năm trước. Cải thiện th
Vì vậy, tôi đang gặp một số rắc rối với vấn đề này vì biến i. Tôi chỉ không biết phải xử lý nó thế nào trong vòng lặp while thứ hai. Đối với vòng lặp bên ngoài, tôi biết nó sẽ chạy trong vòng lặp log_4(n^2). Đối với vòng lặp while bên trong, tôi tính toán các lần lặp
Có vẻ như tôi không tìm ra cách hiệu quả để áp dụng nhiều logic if/then vào một enum. anyOf không áp dụng logic có điều kiện, mà thay vào đó sẽ nói rằng nếu bất kỳ điều nào trong số này khớp thì tốt. allOf một lần nữa không áp dụng logic có điều kiện, mà thay vào đó kiểm tra siêu tập các thuộc tính/trường bắt buộc. Đây là một
Cách truy cập vào monad nội bộ của ReaderT. Trong trường hợp của tôi, tôi có kiểu: newtype VCSSetupAction a = VCSSetupAction (ReaderT (Có thể là VCSCo
Câu hỏi này đã có câu trả lời tại đây: Thêm số 0/0 vào các giá trị Excel hiện có theo một độ dài nhất định (7 câu trả lời) Đã đóng 7 năm trước. Tôi đang tìm kiếm
Tôi đã liên kết nhiều tổ hợp hàm AND/OR nhưng không thành công. Sau đây là những gì tôi cần tạo: Ở cột B, tôi có ID công ty có độ dài từ hai ký tự số đến sáu ký tự số. Tôi cần có những thông tin sau trước mỗi ID công ty trong cột B:
Tôi mới làm quen với VBA và đang gặp một số khó khăn khi sử dụng câu lệnh If trong macro mà tôi đang cố viết. Hàng tháng, tôi nhận được báo cáo Excel liệt kê những nhân viên nào trong công ty đã thực hiện các nhiệm vụ nhất định. Macro tôi đang viết được thiết kế để sao chép và dán dữ liệu của từng nhân viên vào
Nếu giá trị trong ô A1 được tìm thấy ở cột B, nó sẽ được điền bằng văn bản 321, trừ khi giá trị trong ô A1 được tìm thấy ở cột C, trong trường hợp đó, nó sẽ được điền bằng văn bản 121. Nếu nội dung của ô A1 không có trong cột B hoặc C, hãy sử dụng
Tôi có hàng trăm ngàn địa chỉ. Một số trong số chúng có hạt sau số nguyên. Ví dụ, 4356 A Horse Avenue, những số khác có định dạng thông thường là 4358 Horse Avenue. Một số có "A" và một số có "B". Tôi đang cố gắng loại bỏ
Tôi là một lập trình viên xuất sắc, rất giỏi!