大佬教程收集整理的这篇文章主要介绍了为什么我的JComponent没有显示在背景JFrame的顶部?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
似乎在这里可以正常工作(在此SSCCE变种的代码中)。
工作代码
import java.awt.*;
import javax.swing.*;
import java.net.URL;
class CounterFrame extends JFrame {
private static final long serialVersionUID = 1L;
private MyPanel myComponent = new MyPanel();
private JLabel contentPane;
CounterFrame() {
try {
URL url = new URL("http://pscode.org/media/stromlo2.jpg");
contentPane = new JLabel(new ImageIcon(url));
} catch(Throwable t) {
t.printstacktrace();
}
contentPane.setLayout(new GrIDBagLayout());
setContentPane(contentPane);
add(myComponent);
}
public static voID main(String[] args) {
//Create the frame on the event dispatching thread
SwingUtilitIEs.invokelater(new Runnable(){
@OverrIDe
public voID run() {
CounterFrame rc = new CounterFrame();
rc.setDefaultCloSEOperation(JFrame.disPOSE_ON_CLOSE);
rc.pack();
rc.setVisible(true);
}
});
}
}
class MyPanel extends JPanel {
private static final long serialVersionUID = 1L;
private String target;
private String raised = "200000";
private Image background;
public MyPanel() {
setPreferredSize(new Dimension(200,100));
}
@OverrIDe
protected voID paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D twoD = (Graphics2D) g;
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIAliASING,
RenderingHints.VALUE_ANTIAliAS_ON);
rh.put(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUAliTY);
twoD.setRenderingHints(rh);
twoD.setcolor(color.BLACK);
twoD.drawString(raised,5, 90);
}
}
我可以从中得出的唯一结论是:
找不到您的资源。 您需要学习基本的调试技巧。在这种情况下,具体来说是“检查每个步骤中正在发生的假设是否确实有效”。如下所示的“三级”语句应分解为3个语句,同时使用System.out.println()或调试器检查3个结果中的每一个。 调试不友好!
new JLabel(new ImageIcon(getClass()
.getResource("background/2.jpg")));
为什么我的JComponent没有显示在背景JFrame的顶部?
请检查以下代码:
class CounterFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private MyPanel myComponent = new MyPanel();
private JLabel contentPane = new JLabel(new ImageIcon(getClass()
.getResource("background/2.jpg")));
CounterFrame() {
contentPane.setLayout(new GridBagLayout());
setContentPane(contentPane);
add(myComponent);
}
}
class MyPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
private Font myFont;
private String target;
private String raised = "200000";
private Image background;
public MyPanel() {
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D twoD = (Graphics2D) g;
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
rh.put(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
twoD.setRenderingHints(rh);
File f = new File("fonts/event.ttf");
try {
myFont = Font.createFont(Font.TRUETYPE_FONT,f);
myFont = myFont.deriveFont(90f);
} catch (FontFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
twoD.setColor(Color.BLACK);
twoD.setFont(myFont);
twoD.drawString(raised,5,90);
}
}
以上是大佬教程为你收集整理的为什么我的JComponent没有显示在背景JFrame的顶部?全部内容,希望文章能够帮你解决为什么我的JComponent没有显示在背景JFrame的顶部?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。