나는 초보자입니다.자바에서 JFrame을 재설정하는 방법
public class ImageFrame extends JFrame {
private static final long serialVersionUID = 1L;
public static final int DEFAULT_WIDTH = 1365;
public static final int DEFAULT_HEIGHT = 730;
GettingImage getimg = new GettingImage();
private BufferedImage image = getimg.getImage();
final ImageProcessing operation = new ImageProcessing(image);
public ImageFrame(){
setTitle("ImageTest");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
JMenu process = new JMenu("Process");
JMenuItem greyscale = new JMenuItem("greyscale");
process.add(greyscale);
//adding action listener to menu items
greyscale.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
image = operation.greyscale();
System.out.println("greyscale is pressed");
}
}
);
JMenuBar bar = new JMenuBar();
setJMenuBar(bar);
bar.add(process);
setSize(1365, 730);
setVisible(true);
ImageComponent component = new ImageComponent(image);
add(component);
}
}
을하지만 그레이 스케일 하위 메뉴를 누르면 이미지가 그레이 스케일로 변환되지 않습니다하지만 난 후 창을 최소화 및 최대화 할 때 이미지가 그레이 스케일로 변경되어 다음과 같이 나는 IMAGEFRAME 클래스가 있습니다. 윈도우가 새로 고쳐지지 않아서라고 생각합니다. 어떻게 새로 고침합니까?
'ImageProcessing' 클래스를 보지 않고는 말할 수 없습니다. 현재'JFrame '에 대해'repaint()'를 호출해야 할 수도 있습니다. – Reimeus