gpt4 book ai didi

java - 仅当调用构造函数时才显示框架

转载 作者:行者123 更新时间:2023-12-02 00:35:05 26 4
gpt4 key购买 nike

我在互联网上找到了这段代码。我遵守了它并且执行得很好。然后我将构造函数的部分移动到一个方法并创建一个我尝试调用该方法的对象。我不知道我错过了什么,但框架就是不会出现。将构造函数传递给方法时出现什么问题?

工作

import java.awt.event.MouseEvent;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.io.IOException;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class MyFrame extends JFrame
{
Container cont;
JLabel label = new JLabel();

public MyFrame() throws IOException
{

setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BufferedImage img = ImageIO.read(new File("C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg"));
System.out.println(img.toString());

label.setIcon(new ImageIcon(img));

cont = (Container) getContentPane().add(label);
cont.setFocusable(true);
InputHandler hand = new InputHandler();
cont.addKeyListener(hand);
cont.addMouseListener(hand);
cont.setBackground(Color.BLACK);
}
public class InputHandler implements KeyListener, MouseListener
{
public void keyTyped(KeyEvent kt)
{
System.out.println(kt.getKeyChar());
}
public void keyPressed(KeyEvent kp)
{
if(kp.getKeyChar() == 'w')
{
cont.setBackground(Color.PINK);
repaint();
}
}
public void keyReleased(KeyEvent kr)
{
System.out.println(kr.getKeyChar());
}

@Override
public void mouseClicked(MouseEvent e) {
System.out.println("Mouse CLicked");
}

@Override
public void mousePressed(MouseEvent e) {
System.out.println("Mosue Pressed");
}

@Override
public void mouseReleased(MouseEvent e) {
System.out.println("Mosue Released");
}

@Override
public void mouseEntered(MouseEvent e) {
System.out.println("Mouse Entered");
}

@Override
public void mouseExited(MouseEvent e) {
System.out.println("Mosue Exited");
}
}

public static void main(String[] args) throws IOException {
new MyFrame().setVisible(true);

}
}

编辑:更改代码(不起作用)

import java.awt.event.MouseEvent;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.io.IOException;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class MyFrame extends JFrame
{
Container cont;
JLabel label = new JLabel();

void MyFrame(){

}
public void Display() throws IOException
{

setSize(280,480);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BufferedImage img = ImageIO.read(new File("C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg"));
System.out.println(img.toString());

label.setIcon(new ImageIcon(img));

cont = (Container) getContentPane().add(label);
cont.setFocusable(true);
InputHandler hand = new InputHandler();
cont.addKeyListener(hand);
cont.addMouseListener(hand);
cont.setBackground(Color.BLACK);
rootPane.setVisible(true);


}
public class InputHandler implements KeyListener, MouseListener
{
public void keyTyped(KeyEvent kt)
{
System.out.println(kt.getKeyChar());
}
public void keyPressed(KeyEvent kp)
{
if(kp.getKeyChar() == 'w')
{
cont.setBackground(Color.PINK);
repaint();
}
}
public void keyReleased(KeyEvent kr)
{
System.out.println(kr.getKeyChar());
}

@Override
public void mouseClicked(MouseEvent e) {
System.out.println("Mouse CLicked");
}

@Override
public void mousePressed(MouseEvent e) {
System.out.println("Mosue Pressed");
}

@Override
public void mouseReleased(MouseEvent e) {
System.out.println("Mosue Released");
}

@Override
public void mouseEntered(MouseEvent e) {
System.out.println("Mouse Entered");
}

@Override
public void mouseExited(MouseEvent e) {
System.out.println("Mosue Exited");
}
}

public static void main(String[] args) throws IOException {
MyFrame mf = new MyFrame();
mf.Display();

}
}

最佳答案

只需在 Display() 方法中将 rootPane.setVisible(true); 替换为 setVisible(true); ,它就会显示您的JFrame

关于java - 仅当调用构造函数时才显示框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8017232/

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