public class KadrPress extends JFrame{
public KadrPress() throws HeadlessException {
super("Кадровая работа");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.add(lineMenu(),"North");
this.add(osnTabPane(),"Center");
this.setExtendedState(MAXIMIZED_BOTH);
this.setVisible(true);
}
//Создание меню
private JMenuBar lineMenu()
{
//Меню файл
JMenuBar lineMenu=new JMenuBar();
//Меню Файл
JMenu filemenu=new JMenu("Файл");
JMenuItem newFile=new JMenuItem("Создать");
JMenuItem openFile=new JMenuItem("Открыть");
JMenuItem saveFile=new JMenuItem("Сохранить");
filemenu.add(newFile);
filemenu.add(openFile);
filemenu.add(saveFile);
filemenu.addSeparator();
filemenu.add(new ExitAction());
lineMenu.add(filemenu);
return lineMenu;
}
//Создание основной панели с вкладками
private JTabbedPane osnTabPane()
{
JTabbedPane osnTabPane=new JTabbedPane();
osnTabPane.addTab("Общие сведения",osnovSvedeniyaJLabel());
osnTabPane.addTab("Лист 2",new JPanel());
return osnTabPane;
}
//Панель основные сведения
private JPanel osnovSvedeniyaJLabel()
{
JPanel osnovSvedeniyaJLabel=new JPanel();
osnovSvedeniyaJLabel.setLayout(new GridLayout(1,2));
osnovSvedeniyaJLabel.add(levayaJTable());
osnovSvedeniyaJLabel.add(new JLabel("2"));
return osnovSvedeniyaJLabel;
}
//Модель основной таблицы
private JTable levayaJTable ()
{
String[]dannie=new String[]{
"Фамилия","Имя","Отчество","Личный номер","Число, месяц, год рождения",
"Место рождения (согласно паспорта)","Серия и номер паспорта","Дата выдачи","Кем выдан",
"Код подразделения","Серия и номер удост. личности (Военного билета)","Дата выдачи(ВБ)",
"Кем выдано","ИНН"
};
JTable levayaJTable=new JTable(new OsnovTable(dannie));
levayaJTable.setRowHeight(20);
levayaJTable.setOpaque(false);
levayaJTable.getColumnModel().getColumn(1)
.setCellRenderer(new MaskTableCellRenderer());
return levayaJTable;
}
//Модель основной таблицы
private class OsnovTable extends AbstractTableModel
{
String[]dannie;
HashMap<String,String>data=new HashMap<>();
public OsnovTable(String[]dannie) {
this.dannie=dannie;
}
@Override
public int getRowCount() {
return dannie.length;
}
@Override
public int getColumnCount() {
return 2;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if (columnIndex==0)return dannie[rowIndex];
if (columnIndex==1) return data.get(dannie[rowIndex]);
return null;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex==0)return false;
if (columnIndex==1)return true;
return false;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
data.put(dannie[rowIndex], (String) aValue);
}
}
//Создание маски таблицы
private class MaskTableCellRenderer extends DefaultTableCellRenderer
{
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if (table.getModel().getValueAt(row,0).equals("Число, месяц, год рождения")){
//if (dannie[row].equals("Число, месяц, год рождения")){
try {
MaskFormatter dateMask=new MaskFormatter("##.##.####");
dateMask.setPlaceholderCharacter('0');
return new JFormattedTextField(dateMask);
} catch (ParseException e) {
e.printStackTrace();
}
}
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
}
//Команда выхода из приложения
class ExitAction extends AbstractAction
{
public ExitAction() {
putValue(NAME,"Выход");
}
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new KadrPress();
}
});
}
}
Подскажите пожалуйста, имеется модель таблицы приведенная выше. На вход поступает массив
String[]dannie=new String[]{
"Фамилия","Имя","Отчество","Число, месяц, год рождения",
"Место рождения (согласно паспорта)","Серия и номер паспорта","Дата выдачи","Кем выдан",
"Код подразделения","Серия и номер удост. личности (Военного билета)","Дата выдачи(ВБ)",
"Кем выдано","ИНН"
};
JTable levayaJTable=new JTable(new OsnovTable(dannie));
Необходимо следующее: 1. Для строки "серия и номер паспорта" задать MaskFormatter типа ("#### ######") 2.Для строки "Число, месяц, год рождения" задать MaskFormatter типа ("##.##.####") Подскажите каким образом лучше реализовать данную задачу. Спасибо.
Возможно это поможет:
MaskFormatter maskFormatter1 = new MaskFormatter("+ (###) ### ####");
MaskFormatter maskFormatter2 = new MaskFormatter("### ### ####");
levayaJTable.getColumnModel().getColumn(1).setCellEditor(
new DefaultCellEditor(new JFormattedTextField(maskFormatter1)) {
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
JFormattedTextField c = (JFormattedTextField) super.getTableCellEditorComponent(table, value, isSelected, row, column);
if (row %2 ==0){
maskFormatter2.uninstall();
maskFormatter1.install(c);
}
else {
maskFormatter1.uninstall();
maskFormatter2.install(c);
}
return c;
}
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Клонировал проект андроид приложения с гитхабаИ получил следующее:
Не могу найти информацию как реализовать вход в игру по Google (play game), чтобы записывать количество очков и выводить в приложении рейтинг игроковПодскажите,...
Столкнулся с такой проблемойПри схлопывании окна нижний JXTaskPaneContainer наезжает на верхний элемент (JTextArea)
Есть элемент созданный с помощью drawImage и какого-либо изображенияХотелось бы узнать, как можно реализовать удаление элемента по клику на нём?