Я пытаюсь полностью отключить всю картину и освежить на части JFrame. Я получил желаемый эффект на весь JFrame просто перекрывая public void paint(Graphics)
вот так:Отключить рисование на JPanel
import javax.swing.*;
class Test extends JFrame {
Test() {
setBounds(20,20, 100,100);
setVisible(true);
}
//This disables all painting and refreshing ON A JFRAME.
//Just doing this on a JPanel doesn't work.
public void paint (Graphics g) {}
public static void main (String[] args)
{ new Test(); }
}
Я хочу, чтобы этот же эффект, но только на определенном участке JFrame. Я хочу иметь возможность добавлять компоненты GUI, как обычно, в остальную часть фрейма. Я попытался отключить двойную буферизацию (с помощью конструктора JPanel), и переопределения следующих метод (расширение как JPanel и JComponent) как так:
public class DontRefresh extends JComponent/JPanel {
public void paint (Graphics g) {}
public void paintComponent (Graphics g) {}
public void repaint() {}
public void update (Graphics g) {}
public void updateUI() {}
}
и я также попытался отключить обновление с помощью:
DontRefresh component = new DontRefresh();
RepaintManager.currentManager(component).markCompletelyClean(component);
но ничего не получилось.
Ваш желаемый эффект не очень точен. Не могли бы вы рассказать нам, что должно быть видно в вашей некрасивой JPanel: прозрачность или постоянный цвет? в первом случае просто установите setOpaque в false, в последнем просто нарисуйте цвет, который вы хотите на фоне. –
* «Я пытаюсь полностью отключить все рисование и обновление на части JFrame». * Вы пытаетесь умышленно нарушить графический интерфейс? Какую функцию это обеспечивает? –