Tôi có một ứng dụng Java Swing để tạo ra các hộp thoại con với các điều khiển văn bản. Và vấn đề là khi bạn thay đổi bố trí bàn phím trong hộp thoại con, nó thay đổi trở lại ngay sau khi hộp thoại được đóng lại.Bảo quản bố cục bàn phím trong ứng dụng xoay?
Điều tôi cần là bố cục keboard ở lại sau khi được chuyển đổi cho dù nó đã được chuyển đổi trong khung chính hoặc trong khung trẻ em.
Đây là một SSCCE minh họa các vấn đề:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class InheritInputContext {
public static void main(String[] arg) {
final MainFrame mainFrame = new MainFrame();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
mainFrame.setPreferredSize(new Dimension(300, 400));
mainFrame.pack();
mainFrame.setLocationRelativeTo(null);
mainFrame.setVisible(true);
}
});
}
}
class MainFrame extends JFrame {
MainFrame() {
setLayout(new BorderLayout());
JTextArea textArea = new JTextArea();
add(textArea, BorderLayout.CENTER);
JButton dialogBtn = new JButton("Dialog");
add(dialogBtn, BorderLayout.SOUTH);
dialogBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ChildDialog cd = new ChildDialog(MainFrame.this);
cd.setPreferredSize(new Dimension(200, 200));
cd.setLocationRelativeTo(MainFrame.this);
cd.pack();
cd.setVisible(true);
}
});
}
}
class ChildDialog extends JDialog {
ChildDialog(Window w) {
super(w);
JTextArea textArea = new JTextArea();
getContentPane().add(textArea);
}
}
Bạn đang nói về bố cục bàn phím của hệ điều hành? Một chút bối rối ở đây. –