📄 menupane.java
字号:
@Override
public void actionPerformed(ActionEvent e) {
fig.rotate(-90);
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":向左旋转90度");
gbc.repaint();
}
};
Action rotateRedoAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
fig.rotateRedo();
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":重置旋转");
gbc.repaint();
}
};
rotate90.addActionListener(rotate90Action);
rotate270.addActionListener(rotate270Action);
rotateRedo.addActionListener(rotateRedoAction);
}
JMenu shearM = new JMenu("切变");
shearM.setEnabled(fig.getID() != AbstractFiguare.STRAIGHT_LINE);
if (fig.getID() != AbstractFiguare.STRAIGHT_LINE)
popmenu.add(shearM);
{
JMenuItem rightShear = new JMenuItem("向右切变");
JMenuItem leftShear = new JMenuItem("向左切变");
JMenuItem redoShear = new JMenuItem("重置切变");
shearM.add(rightShear);
shearM.add(leftShear);
shearM.add(redoShear);
Action rightShearAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
fig.rightShear();
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":向右切变");
gbc.repaint();
}
};
Action leftShearAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
fig.leftShear();
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":向左切变");
gbc.repaint();
}
};
Action redoShearAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
fig.redoShear();
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":重置切变");
gbc.repaint();
}
};
rightShear.addActionListener(rightShearAction);
leftShear.addActionListener(leftShearAction);
redoShear.addActionListener(redoShearAction);
}
popmenu.addSeparator();
String name;
if (fig.getID() == AbstractFiguare.TEXT) {
name = "文字轮廓";
} else {
name = "线条";
}
JMenu strokeM = new JMenu(name);
popmenu.add(strokeM);
{
JMenuItem colorMi = new JMenuItem("颜色");
strokeM.add(colorMi);
Action colorAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
Color ans = JColorChooser.showDialog(gbc, "选择线条颜色", fig
.getStrokeColor());
if (!ans.equals(fig.getStrokeColor())) {
fig.setStrokeColor(ans);
gbc
.updateNetFiguare(
NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":修改线条颜色");
gbc.repaint();
}
}
};
colorMi.addActionListener(colorAction);
JMenuItem colorNoneMi = new JMenuItem("无色");
strokeM.add(colorNoneMi);
Action colorNoneAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
fig.setStrokeColor(null);
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":删除线条颜色");
gbc.repaint();
}
};
colorNoneMi.addActionListener(colorNoneAction);
strokeM.addSeparator();
JMenuItem incWidthMi = new JMenuItem("增加宽度(2.0f)");
incWidthMi
.setEnabled(fig.getLineWidth() + 2.0f <= AbstractFiguare.LINE_MAX_WIDTH);
strokeM.add(incWidthMi);
Action incWidthAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
double lw = fig.getLineWidth();
lw += 2.0f;
fig.setLineWidth(lw);
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":增加线条宽度");
gbc.repaint();
}
};
incWidthMi.addActionListener(incWidthAction);
JMenuItem decWidthMi = new JMenuItem("减少宽度(2.0f)");
decWidthMi.setEnabled(fig.getLineWidth() - 2.0f >= 0);
strokeM.add(decWidthMi);
Action decWidthAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
double lw = fig.getLineWidth();
lw -= 2.0f;
fig.setLineWidth(lw);
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":减少线条宽度");
gbc.repaint();
}
};
decWidthMi.addActionListener(decWidthAction);
strokeM.addSeparator();
JMenuItem incDisMi = new JMenuItem("增加间距(0.5f)");
incDisMi
.setEnabled(fig.getLineDis() + 0.5f <= AbstractFiguare.LINE_MAX_STYLE);
strokeM.add(incDisMi);
Action incDisAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
double ls = fig.getLineDis();
ls += 0.5f;
fig.setLineDis(ls);
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":增加虚线间距");
gbc.repaint();
}
};
incDisMi.addActionListener(incDisAction);
JMenuItem decDisMi = new JMenuItem("减少间距(0.5f)");
decDisMi.setEnabled(fig.getLineDis() - 0.5f >= 0);
strokeM.add(decDisMi);
Action decDisAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
double ls = fig.getLineDis();
ls -= 0.5f;
fig.setLineDis(ls);
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":减少虚线间距");
gbc.repaint();
}
};
decDisMi.addActionListener(decDisAction);
}
if (fig.getID() == AbstractFiguare.TEXT) {
name = "文字内部";
} else {
name = "填充";
}
JMenu fillM = new JMenu(name);
fillM.setEnabled(fig.getID() != AbstractFiguare.STRAIGHT_LINE);
if (fig.getID() != AbstractFiguare.STRAIGHT_LINE)
popmenu.add(fillM);
{
JMenuItem colorMi = new JMenuItem("颜色");
fillM.add(colorMi);
Action colorAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
Color ans = JColorChooser.showDialog(gbc, "选择填充颜色", fig
.getFillColor());
if (!ans.equals(fig.getFillColor())) {
fig.setFillColor(ans);
gbc
.updateNetFiguare(
NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":修改填充颜色");
gbc.repaint();
}
}
};
colorMi.addActionListener(colorAction);
JMenuItem colorNoneMi = new JMenuItem("无色");
fillM.add(colorNoneMi);
Action colorNoneAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
fig.setFillColor(null);
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":删除填充颜色");
gbc.repaint();
}
};
colorNoneMi.addActionListener(colorNoneAction);
}
popmenu.addSeparator();
JMenu layerM = new JMenu("层次");
popmenu.add(layerM);
{
JMenuItem toUpMi = new JMenuItem("移至顶层");
toUpMi
.setEnabled(gbc.getFiguareLayer(fig) < gbc
.getFiguareCount() - 1);
layerM.add(toUpMi);
Action toUpAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
gbc.toHighestLayer(fig, true);
}
};
toUpMi.addActionListener(toUpAction);
JMenuItem upMi = new JMenuItem("上移一层");
upMi
.setEnabled(gbc.getFiguareLayer(fig) < gbc
.getFiguareCount() - 1);
layerM.add(upMi);
Action upAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
gbc.toHigherLayer(fig, true);
}
};
upMi.addActionListener(upAction);
JMenuItem downMi = new JMenuItem("下移一层");
downMi.setEnabled(gbc.getFiguareLayer(fig) > 0);
layerM.add(downMi);
Action downAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
gbc.toLowerLayer(fig, true);
}
};
downMi.addActionListener(downAction);
JMenuItem toDownMi = new JMenuItem("移至低层");
toDownMi.setEnabled(gbc.getFiguareLayer(fig) > 0);
layerM.add(toDownMi);
Action toDownAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
gbc.toLowestLayer(fig, true);
}
};
toDownMi.addActionListener(toDownAction);
}
JMenuItem textMi = new JMenuItem("设置文字");
if (fig.getID() == AbstractFiguare.TEXT) {
popmenu.addSeparator();
popmenu.add(textMi);
Action textAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
gbc.setCursor(Cursor
.getPredefinedCursor(Cursor.WAIT_CURSOR));
((TextFiguare) fig).editText();
gbc.updateNetFiguare(NetMessage.MES_CHANGE_FIGUARE, fig);
gbc.putClientProperty(View.CANVAS_CHANGED_PROPERTY,
fig.serialId + ":修改文字");
gbc.repaint();
gbc.updateCursor();
}
};
textMi.addActionListener(textAction);
}
return popmenu;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -