「java基本模型」java领域模型

博主:adminadmin 2023-01-14 18:36:08 312

本篇文章给大家谈谈java基本模型,以及java领域模型对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 的表格模型是什么?

DefaultTableModel是常用的java表格模型。

参考代码:

package com.dusd;

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.Point;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.InputEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.util.Arrays;

import java.util.Vector;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.ListSelectionModel;

import javax.swing.event.TableModelEvent;

import javax.swing.event.TableModelListener;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.JTableHeader;

import javax.swing.table.TableColumnModel;

/**

 * 表格模型事件示例

 * p

 * liA component generally gains the focus when the user clicks it, 

 * or when the user tabs between components, or otherwise interacts 

 * with a component. A component can also be given the focus programmatically,

 * such as when its containing frame or dialog-box is made visible. 

 * The snippet of the codes below shows how to give a particular component  

 * the focus every time the window gains the focus.

 * 

 * @author HAN

 * 

 */

public class TableModel extends JFrame {

/**

 * 

 */

private static final long serialVersionUID = -8581492063632813033L;

public TableModel() {

// TODO Auto-generated constructor stub

final Container container = getContentPane();

VectorString tableColumnNames = new VectorString();

tableColumnNames.add("A");

tableColumnNames.add("B");

VectorVectorString tableValues = new VectorVectorString();

for (int i = 1; i  5; i++) {

VectorString vector = new VectorString();

vector.add("A" + i);

vector.add("B" + i);

tableValues.add(vector);

}

final DefaultTableModel defaultTableModel = new DefaultTableModel(

tableValues, tableColumnNames);

final JTable table = new JTable(defaultTableModel);

JScrollPane scrollPane = new JScrollPane();

scrollPane.setViewportView(table);

container.add(scrollPane, BorderLayout.CENTER);

JPanel panel = new JPanel();

container.add(panel, BorderLayout.SOUTH);

JLabel labelA = new JLabel("A: ");

final JTextField textFieldA = new JTextField(15);

JLabel labelB = new JLabel("B: ");

final JTextField textFieldB = new JTextField(15);

JButton buttonAdd = new JButton("添加");

JButton buttonDel = new JButton("删除");

JButton buttonDeselected = new JButton("取消选择");

panel.add(labelA);

panel.add(textFieldA);

panel.add(labelB);

panel.add(textFieldB);

panel.add(buttonAdd);

panel.add(buttonDel);

panel.add(buttonDeselected);

buttonAdd.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

int[] selectedRows = table.getSelectedRows(); // table

// 默认情况容许多行选择

VectorString rowData = new VectorString();

rowData.add(textFieldA.getText());

rowData.add(textFieldB.getText());

if (selectedRows.length == 0) {

defaultTableModel.addRow(rowData);

textFieldA.setText(null);

textFieldB.setText(null);

} else if (selectedRows.length == 1) {

// System.out.println(selectedRows[0]);

defaultTableModel.insertRow(selectedRows[0] + 1, rowData);

textFieldA.setText(null);

textFieldB.setText(null);

} else {

JOptionPane.showMessageDialog(container,

"Your operation is forbidden", "Warning",

JOptionPane.WARNING_MESSAGE);

}

}

});

buttonDel.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

int[] selectedRows = table.getSelectedRows(); // table

// 默认情况容许多行选择

for (int i = 0; i  selectedRows.length; i++) {

// System.out.println(selectedRows[i]);

defaultTableModel.removeRow(selectedRows[i] - i);

}

}

});

buttonDeselected.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

table.clearSelection();

}

});

scrollPane.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

//  System.out.println("here");

if (e.getClickCount() == 1

 e.getButton() == MouseEvent.BUTTON1) {

table.clearSelection();

}

}

});

// make the text field focused every time the window is activated

addWindowFocusListener(new WindowAdapter() {

@Override

public void windowGainedFocus(WindowEvent e) {

// TODO Auto-generated method stub

textFieldA.requestFocus(); 

}

});

// **************************************************************

// This is a standard snippet to realize the desired column selection as in

// Excel

// **************************************************************

// row selection mode

table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

// column selection mode

TableColumnModel tableColumnModel = table.getColumnModel();

tableColumnModel.getSelectionModel().setSelectionMode(

ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

// allow the column selection (the row selection is allowed by default)

table.setColumnSelectionAllowed(true);

final JTableHeader tableHeader = table.getTableHeader();

tableHeader.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

// Extended modifiers represent the state of all modal keys,

// such as ALT, CTRL, META.

if (e.getClickCount() == 1

 e.getButton() == MouseEvent.BUTTON1) {

// Point point = new Point(e.getX(), e.getY());

Point point = new Point(e.getPoint());

int columnNum = tableHeader.columnAtPoint(point);

// System.out.println(columnNum);

int[] selectedColumns = table.getSelectedColumns();

if (selectedColumns.length != 0) {

// System.out.println("here1");

// System.out.println(InputEvent.getModifiersExText(e.getModifiersEx()));

if (e.getModifiersEx() == (InputEvent.CTRL_DOWN_MASK)) {

// System.out.println("ctrl");

if (Arrays.binarySearch(selectedColumns, columnNum) = 0) {

table.removeColumnSelectionInterval(columnNum,

columnNum);

} else {

table.addColumnSelectionInterval(columnNum,

columnNum);

}

} else if (e.getModifiersEx() == (InputEvent.SHIFT_DOWN_MASK)) {

// System.out.println("shift");

table.setColumnSelectionInterval(

selectedColumns[0], columnNum);

} else {

table.setColumnSelectionInterval(columnNum,

columnNum);

}

} else {

// System.out.println("here2");

table.setColumnSelectionInterval(columnNum, columnNum);

}

table.setRowSelectionInterval(0, table.getRowCount() - 1);

}

}

});

defaultTableModel.addTableModelListener(new TableModelListener() {

public void tableChanged(TableModelEvent e) {

// TODO Auto-generated method stub

int type = e.getType();

int firstRow = e.getFirstRow();

// int lastRow = e.getLastRow(); // the last row seems to be always equal to the first row

int column = e.getColumn();

switch (type) {

case TableModelEvent.DELETE:

System.out.print("此次事件由 删除 行触发:");

System.out.println("此次删除的是第 " + firstRow + " 行");

break;

case TableModelEvent.INSERT:

System.out.print("此次事件由 插入 行触发:");

System.out.println("此次插入的是第 " + firstRow + " 行");

break;

case TableModelEvent.UPDATE:

System.out.print("此次事件由 更新 行触发:");

System.out.println("此次更新的是第 " + firstRow + " 行第 " + column + " 列");

break;

default:

System.out.println("此次事件由 其他原因 触发");

}

}

});

}

/**

 * @param args

 */

public static void main(String[] args) {

// TODO Auto-generated method stub

TableModel frame = new TableModel();

frame.setTitle("表格模型事件示例");

frame.pack(); //Realize the components.

// frame.setBounds(100, 100, 600, 300);

// textFieldA.requestFocus();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true); //Display the window.

}

}

java编程中的三种数据模型是什么呢

你好,数据模型主要有三种:层次模型、网状模型和关系模型。其中,层次模型和网状模型统称为非关系模型,由此构成的数据库居于非关系数据库产品,目前较少使用,关系模型构成关系数据库,是当前数据库主流产品。

关系模型是通过满足一定条件的二维表来表示数据及其数据间联系的一种模型。

O(∩_∩)O~温馨提示O(∩_∩)O~

真心希望你能采纳我的回答,如有不明白,可以继续追问,若满意,记得及时采纳。

java的内存模型是怎么设计的

先来画一个简图,java内存模型可以这样分类:

主要作用,存放的类型:

堆:主要是用于存放对象。

栈:存放一个对象引用和基本数据类型、局部变量

静态变量区:存放static类型的变量或者成员变量、常量

代码区:书写的代码

下面看代码具体的说明:

package com.wyq.Memory;

public class Person {

public String name;//成员变量,存放在栈中

public static int age;//static类型的变量,存放在静态变量区

public static final String sex="女";//常量在常量池中

public Person(String name){

this.name=name;

}

public void walk(Person person){//传入一个person引用,存放在栈中

int step=5;//局部变量,基本数据类型,存放在栈中

System.out.println(person.name+"跑了"+step+"步");

}

public static void main(String[] args) {

Person person=new Person("楼主");//由构造器new一个person对象,存放在堆中

person.walk(person);

}

}

//整个代码在代码区中

Java中的模型的概念是什么样的

模型其实就是java中常说的 对象的概念 也就是一个实体。究其根本其实就是一个java类

java基本模型的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java领域模型、java基本模型的信息别忘了在本站进行查找喔。