У меня есть проект MDI. Я добавляю клиента JPanel в JInternalFrame. У моего клиента JPanel есть общедоступный метод изменения цвета фона компонента. Когда нажата кнопка на JFrame, я хочу, чтобы она меняла ярлык или текст на моем клиенте JPanel для всех внутренних фреймов. Как я могу назвать метод? Заранее спасибоВызовите метод на моем клиенте JPanel для изменения ярлыка для всех JInternalFrames в JFrame
Следующий кодом является действием для кнопки на JFrame
private void categoryAction(ActionEvent e){
try{
JButton b=(JButton)e.getSource();
Color c=b.getBackground();
JInternalFrame[] allframes = desktop.getAllFrames();
int count = allframes.length;
for (int i=0; i<allframes.length-1; i++){
//call the method on the PDFJPanel
}
}
catch(Exception err){
Utility.DisplayErrorMsg(err.toString());
}
Следующий код добавьте внутреннюю рамку на рабочий стол
private void AddNote(File file){
JInternalFrame internalFrame = new JInternalFrame("PDFAnnotation"
+ file.getName(), true, true, true, true);
internalFrame.setBounds(0, 0, 600, 100);
desktop.add(internalFrame);
PDFJPanel p=new PDFJPanel(file);
internalFrame.add(p, BorderLayout.CENTER);
internalFrame.setVisible(true);
try {
internalFrame.setSelected(true);
}
catch (java.beans.PropertyVetoException e) {}
this.add(desktop, BorderLayout.CENTER);
//resize the internal frame as full screen
Dimension size = desktop.getSize();
int w = size.width ;
int h = size.height ;
int x=0;
int y=0;
desktop.getDesktopManager().resizeFrame(internalFrame, x, y, w, h);
}
Существует метод на моем клиенте JPanel
Public void setDefaultColor(Color c){
//change the label and textbox color
}
мне нужно изменить весь кадр, а не только в настоящее время активного кадра. – user819774
@ user819774 см. [JDesktopPane.getAllFrames()] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JDesktopPane.html#getAllFrames%28%29) – tenorsax
Я использовал getAllFrames () в моем коде, чтобы получить весь фрейм, но я не знаю, как получить PDFJPanel для всего внутреннего фрейма. Вы мне покажете? Благодарю. – user819774