我知道我没有在大型机中调用graphics paint命令来显示它。但我不知道怎么做。 提前谢谢
import java.awt.*;
import javax.swing.*;
public class MainFrame extends JFrame {
private static Panel panel = new Panel();
public MainFrame() {
panel.setBackground(Color.white);
Container c = getContentPane();
c.add(panel);
}
public void paint(Graphics g) {
g.drawString("abc", 20, 20);
}
public static void main(String[] args) {
MainFrame frame = new MainFrame();
frame.setVisible(true);
frame.setSize(600, 400);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
答案 0 :(得分:2)
阅读Custom Painting上Swing教程中的部分,了解有关绘画以及其他Swing基础知识的工作示例。
另外,不要使用Panel,即AWT类。使用JPanel这是一个Swing类。
答案 1 :(得分:1)
创建一个扩展JComponent的新类,覆盖public void paintComponent(Graphics g)方法并绘制字符串。
将此覆盖的组件添加到您的框架中。喜欢:frame.getContentPane().add(customComponent);
答案 2 :(得分:1)
首先,您需要在Event Dispatch Thread中创建AWT / Swing内容。其次,你不应该覆盖主窗口上的油漆。您需要创建Component
的子类并覆盖paintComponent(Graphics g)
方法,并在此处放置paint
中的任何内容。在此之后,将组件添加到框架中。您可能需要根据需要搞乱布局管理器。
答案 3 :(得分:0)
您可以创建一个扩展JPanel的类:
public class MyPanel extends JPanel{
public MyPanel(){
setBackground(Color.WHITE);
}
public void paintComponent(Graphics g) {
g.drawString("abc", 20, 20);
}
}
然后您可以将该面板添加到JFrame。
public class MainFrame extends JFrame {
private JPanel panel;
public MainFrame() {
panel = new MyPanel();
add(panel, BorderLayout.CENTER);
}
public static void main(String[] args) {
MainFrame frame = new MainFrame();
frame.setSize(600, 400);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}